int* getNewArray(){
//在堆區開闢空間存放數組(若是在棧區存放數組,隨着函數結束,數組名指向的地址存放的內容也會被系統釋放,而堆上的空間是由程序員自動給予分配和釋放的)
int *p = malloc(COUNT * sizeof(int));
//static int p[COUNT] = {0}; //或者採用static定義指針變量 (在數組p[COUNT]前面加入了static關鍵字,它就使得p[COUNT]存放在內存中的靜態存儲區中,所佔用的存儲單元不釋放直到整個程序運行結束)
for (int i = 0; i < COUNT; i++)
{
p[i] = arc4random()%101;
printf("%d ", p[i]);
}
printf("\n");
for (int i = 0; i < COUNT - 1; i++)
{
for (int j = 0; j < COUNT - i - 1; j++)
{
if (p[j] > p[j+1])
{
int temp = p[j];
p[j] = p[j+1];
p[j+1] = temp;
}
}
}
return p;
}
int main(int argc, const char * argv[])
{
int *p = NULL; //定義與封裝函數返回值類型相同的指針變量,來接收返回地址
p = getNewArray();
//打印排序後的函數
for (int i = 0; i < COUNT; i++)
{
printf("%d ", p[i]);
}
return 0;
}
需要動態申請的啊,堆棧上面的數組是不能直接返回的會在函數退出的時候銷燬掉