char str[100][60] = {0};// 全局变量
char** fun( ) {
......
return str;
}
返回值部分怎么写?
char str[100][60] = {0};// 全局变量
char** fun( ) {
......
return str;
}
返回值部分怎么写?
char* fun( ) {
char* p = str[0][0];
// do something
for( int i = 0;i < 100 ; ++i )
for ( int j = 0; j< 60; ++j )
*(p + 100 * i + j ) = 'a'
return p;
}
示例很粗糙,实际就是得返回堆上创建的对象,不能是栈上的。
6 回答6.9k 阅读✓ 已解决
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
你问的是返回值类型怎么写吧:
或者:
看你的要求了
原因么,就是
str
的类型其实是str60
,所以str[1][2]
的时候编译器才能知道访问的地址是str+60*1+2
,所指向的一个字节的数据(char型)。这个和char**
不是同一个类型,char **
里面不包含信息60。所以要改成合法的C代码,就是修改返回值的类型或是强制类型转换。