动态内存分配功能

时间:2013-02-18 23:12:08

标签: c

int **Matrix_B1;  

Matrix_B1 = (int**)malloc(RowB*(sizeof(int*)));  

for (int p=0; p<RowB; p++)  
{  
    Matrix_B1[p] = (int*)malloc(ColumnB*(sizeof(int)));   
}

如何在c?

中创建一个执行动态内存分配的函数

我有很多像这样的矩阵,我不想继续写同样的东西。

2 个答案:

答案 0 :(得分:0)

int * Matrix_B1;

int matrixSize = Rowb * ColumnB; Matrix_B1 = int(*)malloc(matrixSize * sizeof(int));

//将值写入矩阵 - Matrix_B1 [4] = $ Value;

//如果有很多矩阵,你可以在一些数组pf指针中存储每个矩阵的指针。每个矩阵都实现为2D数组,并且其内存是动态分配的。您可以按行或列样式访问数据。

答案 1 :(得分:0)

只需按正常方式使用功能即可。记得要跟踪尺寸。还记得在你完成后自由!

#include <stdlib.h>

int **Create2x2Matrix(int rowB, int columnB)
{
    int **matrix = (int**)malloc(rowB*(sizeof(int*)));
    for (int p=0; p<rowB; p++)  
    {  
        matrix[p] = (int*)malloc(columnB*(sizeof(int)));   
    }
    return matrix;
}

void Destroy2x2Matrix(int **matrix, int rowB)
{
    for (int p=0; p<rowB; p++)  
    {  
        free(matrix[p]);
    }
    free(matrix);
}

int main()
{
    int rowB = 10;
    int columnB = 11;
    int **matrix_B1 = Create2x2Matrix(rowB, columnB);
    Destroy2x2Matrix(matrix_B1, rowB);
    return 0;
}