gpt4 book ai didi

C - 使用 malloc 创建一个数组,然后循环遍历它

转载 作者:太空宇宙 更新时间:2023-11-04 05:05:11 27 4
gpt4 key购买 nike

我正在学习 C 并尝试编写此函数

int *create_matrix(int n) {
int *matrix = malloc(n*n*sizeof(int));
srand(time(NULL));
int i, j;
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
matrix[i][j] = rand()%10;
}
}
return matrix;
}

为什么编译失败?它提示 matrix[i][j] 不是指针/数组。但我刚刚将其声明为上面六行的指针...

最佳答案

它是一维数组,因此您必须将其视为一维数组,而不是二维数组。

当然,您仍然可以在其中存储您的 n x n 元素:

    matrix[i * n + j] = rand() % 10;

如果您愿意,可以按照 How do I work with dynamic multi-dimensional arrays in C? 中给出的建议设置二维结构。

顺便说一下,您可能不希望每次创建矩阵时都调用 srand()。如果您快速连续两次调用 create_matrix(),您最终可能会得到相同的“随机”矩阵。在程序开始时调用一次 srand()

关于C - 使用 malloc 创建一个数组,然后循环遍历它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26381258/

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