gpt4 book ai didi

c - 用函数初始化c中动态分配的二维数组

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

在这里做错了一些事情(或很多事情),但不太明白。函数需要创建一个用户定义的二维数组并返回指向该数组的指针。

int *create_array (int n, int m, int intitial_value){
int *array;
int index, count;

array=(int *) malloc(n*sizeof(int)); //allocate memory based on user input
for (index=0;index<n;index++){
array[index]=(int *) malloc(m*sizeof(int));
}


for (index=0;index<n;index++){
for (count=0;count<m;count++){
array[n][m]=intitial_value;
}
}

return *array;
}

还想知道我是否正确地从 main 中释放了内存?

ptr=create_array (n, m, intitial_value);
free(ptr);

非常感谢任何帮助!谢谢

最佳答案

int **create_array (int n, int m, int intitial_value){
int **array;
int index, count;

array = malloc(n*sizeof(int*)); //allocate memory based on user input
for (index = 0; index < n; index++){
array[index] = malloc(m*sizeof(int));
}


for (index = 0; index < n; index++){
for (count = 0; count < m; count++){
array[index][count] = intitial_value;
}
}

return array;
}

这个:

ptr=create_array (n, m, intitial_value);
free(ptr);

应该是

int i;
for(i = 0; i < n; i++) {
free(ptr[i];)
}
free(ptr);

关于c - 用函数初始化c中动态分配的二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22992865/

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