函数的返回值是二位数组,怎么写
char str[100][60] = {0};// 全局变量
char** fun( ) {
......
return str;
}
返回值部分怎么写?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
char str[100][60] = {0};// 全局变量
char** fun( ) {
......
return str;
}
返回值部分怎么写?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
你问的是返回值类型怎么写吧:
或者:
看你的要求了
原因么,就是
str
的类型其实是str60
,所以str[1][2]
的时候编译器才能知道访问的地址是str+60*1+2
,所指向的一个字节的数据(char型)。这个和char**
不是同一个类型,char **
里面不包含信息60。所以要改成合法的C代码,就是修改返回值的类型或是强制类型转换。
记得返回char**的同时让调用方知道数组的长度,因为char[]退化成char*时失去了数组的长度信息,建议在参数里加上一个 int* 表长度。
按照楼上的做法比较好:
示例很粗糙,实际就是得返回堆上创建的对象,不能是栈上的。