C 如何将int函数的结果传递给void函数 int*mA(int x){ int*arr[x],i=0; 而你的问题来自: int*arr[x];
在这里,您可以创建一个指向未使用C 如何将int函数的结果传递给void函数 int*mA(int x){ int*arr[x],i=0; 而你的问题来自: int*arr[x];,c,C,在这里,您可以创建一个指向未使用malloc或任何分配器函数分配的数组的指针,然后无法返回它。要解决此更改,请执行以下操作: int*arr[x]; //到 int*arr=malloc(sizeof(int)*x);//或任何分配器函数 使用此阵列或结束程序后,需要释放分配给它的内存,如下所示: int *mA(int x){ int *arr[x], i = 0; while(i<x){ arr[x]=i; printf("%
malloc
或任何分配器函数分配的数组的指针,然后无法返回它。要解决此更改,请执行以下操作:
int*arr[x];
//到
int*arr=malloc(sizeof(int)*x);//或任何分配器函数
使用此阵列或结束程序后,需要释放分配给它的内存,如下所示:
int *mA(int x){
int *arr[x], i = 0;
while(i<x){
arr[x]=i;
printf("%d ", arr[x]);
i++;
}return arr;
}
void fA(int *arr, int x){
int j=0;
while(j<x){
printf("%d ", arr[x]);
j++;
}
如果您有数组指针,则可以在任何地方调用该函数。您返回本地数组的地址。这是不允许的,因为该数组的生存期在离开函数后结束。@Gerhardh那么我是否应该更改return arr;以返回*arr;?不,您需要为数据分配内存。
*arr
与arr[0]
并且只包含1个整数。@Gerhardh我将首先检查。谢谢您的帮助help@Gerhardh我读过这篇文章,它真的很有帮助。谢谢你,alotIt不是指向数组的指针,它是指针数组。
free(arr);