Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何将int函数的结果传递给void函数 int*mA(int x){ int*arr[x],i=0; 而你的问题来自: int*arr[x];_C - Fatal编程技术网

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);