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;
}
需要动态申请的啊,堆栈上面的数组是不能直接返回的会在函数退出的时候销毁掉