C Code:
#include "stdafx.h"
char* fun1()
{
char nums[10][3]={"","一","二","三","四","五","六","七","八","九"};
return (char*)&nums;
}
void fun2(char* str)
{
printf("\n=======================");
for(int i=1;i<=10;i++,str++)
{
printf("%s",*str);
}
printf("\n=======================");
}
int _tmain(int argc, _TCHAR* argv[])
{
char *str=fun1();
fun2(str);
getchar();
return 0;
}
这个fun2()要怎么样才可以输出那个nums[10][3]中的内容, 高手指点下,谢谢
问题蛮简单的,看好啦
char nums[10][3];
char *p=nums;
指针法输出nums[i][j],可用*(p[i]+j),*(*(p+i)+j),(*(p+i))[j];
还有不明白的地方,可继续追问。
囧~ 函数里分配的栈空间会在函数结束后统统回收掉~ 你的fun1返回的是野指针~