首页 新闻 会员 周边

C语言怎么用指针输出二维字符数组

0
[已解决问题] 解决于 2012-03-26 16:13

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]中的内容, 高手指点下,谢谢

丨灬風塵一丬的主页 丨灬風塵一丬 | 初学一级 | 园豆:176
提问于:2011-08-22 12:05
< >
分享
最佳答案
0

问题蛮简单的,看好啦

char nums[10][3];

char *p=nums;

指针法输出nums[i][j],可用*(p[i]+j),*(*(p+i)+j),(*(p+i))[j];

还有不明白的地方,可继续追问。

奖励园豆:5
加拿大小哥哥 | 初学一级 |园豆:183 | 2012-03-19 15:48
其他回答(1)
0

囧~  函数里分配的栈空间会在函数结束后统统回收掉~  你的fun1返回的是野指针~

胡搞瞎搞 | 园豆:205 (菜鸟二级) | 2012-03-18 00:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册