【发布时间】:2012-01-17 08:57:56
【问题描述】:
如果可能的话:
#include <stdio.h>
#include <process.h>
#define SIZE 5
void PassingArray(int arr[])
{
int i=0;
for(i=0 ; i<SIZE ; i++)
{
printf("%d, ", arr[i]);
}
printf("\n");
}
main()
{
int myIntArray[5] = {1, 2, 3, 4, 5};
PassingArray(myIntArray);
system("PAUSE");
}
那为什么下面是非法的呢?
#include <stdio.h>
#include <process.h>
#define SIZE 5
int ReturningArray()[]
{
int myIntArray[5] = {1, 2, 3, 4, 5};
return myIntArray;
}
main()
{
int myArray[] = ReturningArray();
system("PAUSE");
}
【问题讨论】:
-
您是否尝试从您的第二版
ReturningArray返回指向int数组的指针?那个签名看起来不对..? -
当我传递一个整数数组时,我试图返回一个整数数组。
-
返回
int数组的函数原型看起来类似于int* ReturningArray,但您必须自己管理malloc并释放内存。我建议你看看cslibrary.stanford.edu/102/PointersAndMemory.pdf