gpt4 book ai didi

C-分配内存的函数

转载 作者:行者123 更新时间:2023-11-30 21:34:15 25 4
gpt4 key购买 nike

我编写了一个过程,它创建 2 个矩阵并将它们相乘。但是,我必须将代码划分为函数,并且在声明一个为矩阵分配内存的函数时遇到问题。

这是我的代码:

void matrixMult(){
int **A, **B, **C; //matrices
int rowA, colA, rowB, colB; //rows and columns
int i, j, k; //for iterations

printf("Number of rows in matrix A: \n");
scanf("%d", &rowA);
printf("Number of columns in matrix A: \n");
scanf("%d", &colA);

printf("Number of rows in matrix B: \n");
scanf("%d", &rowB);
printf("Number of columns in matrix B: \n");
scanf("%d", &colB);

//memory allocation
A = (int**)malloc(rowA * sizeof(int));
B = (int**)malloc(rowB * sizeof(int));
C = (int**)malloc(rowA * sizeof(int));

for (i = 0; i < rowA; i++)
{
A[i] = (int*)malloc(colA * sizeof(int));
}

for (i = 0; i < rowB; i++)
{
B[i] = (int*)malloc(colB * sizeof(int));
}

for (i = 0; i < rowA; i++)
{
C[i] = (int*)malloc(colB * sizeof(int));
}
/*
the rest of code
*/
}

这个函数应该是什么样子?

最佳答案

您有两种方法可以在实践中使用:

  • 编写一个分配矩阵并返回结果的函数 - 您的函数将具有以下签名:int **alloc_matrix(size_t rows, size_t columns)<
  • 编写一个函数,接受指向矩阵指针的指针,并返回状态代码 - 签名为int alloc_matrix(int*** res, size_t rows, size_t columns)

第二个函数返回的值将指示内存分配成功或失败。

关于C-分配内存的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37514781/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com