C语言 怎么返回一个数组

[复制链接]
查看11 | 回复5 | 2017-11-25 22:30:09 | 显示全部楼层 |阅读模式
你想返回一个数组,因为你在一个函数内创建了数组,属于局部变量,所以他在stack部分,而stack部分是用后类似于销毁的,你返回的地址类似于一块垃圾的地址,所以编译警告。你要想返回函数内创建的数组地址的话需要//inside a function{
// n is the size of the array;
int* array = (int *)malloc(sizeof(int)*n);
/*
do something with array
*/
return array;}这样这个数组建立在heap堆上,调用完函数还在,而你返回了那个堆上数组的首地址,这样就没问题了。用完free(arr...
回复

使用道具 举报

千问 | 2017-11-25 22:30:09 | 显示全部楼层
1、在void strcat()的strcat前添加*,表示返回char 指针。2、strcat()应该返回str1,即 return str1。str1是连接的结果,调用者有责任确保str1数组空间足够大,以便在其尾部添加str2后,不会覆盖其他数据空间。...
回复

使用道具 举报

千问 | 2017-11-25 22:30:09 | 显示全部楼层
不需要return返回,数组操作的是地址,只要你在被调函数里对数组操作了,主函数里的数组也是会变得,把子函数的return部分去掉就可以了。。。。。指针也是调用地址的,一样的,都不用返还值,都不用return...
回复

使用道具 举报

千问 | 2017-11-25 22:30:09 | 显示全部楼层
好像,使用指针是不需要返回值RETURN 的。 使用指针函数直接是形参与实参共用同一片内存空间,形参变化了,实参也就变化了。因此,直接使用 void函数就好。...
回复

使用道具 举报

千问 | 2017-11-25 22:30:09 | 显示全部楼层
在定义数组时,前面加上static,如:static char str[100] ;...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行