写函数a给二维数组赋值,然后返回。用s接收。总是错误。谁能给段实现二维数组赋值的代码么 char ** a() { char s[50][100]; for(i=0;i<3;i++) { strcat(s[i],"fe") } return (char **)s; } //////////// char *s=null; s=a;本人学c不久。指针有时候不是很明白,哪位大哥能指教,感激不尽
这个指针用的不对,你的char s[][]指针是一个只在a函数里生效的指针,返回到上一层他就被系统释放了,然后你会收到报错
最简单的改法这样写(加上static就不会被释放了,但是一般不这样写)
char ** a() { static char s[50][100]; for(int i=0;i<3;i++) { strcat(s[i],"fe"); } return (char **)s; }
不过最好还是找本指针教学的书来学习一下吧