关于指针数组的一点疑惑

suseyaoyao 2015-11-03 02:55:07
下面一段代码:


#include<stdio.h>

void main()
{
int i;
char *pch[6] = {"妹","妹","你","别","走"};
for (i = 0;i < 6;i ++)
{
printf("%s",pch[i]);

}
printf("\n");
for (i = 5;i >=0;i--)
{
printf("%s\n",pch[i]);
}
}


编译运行后出现如下情况:
妹妹你别走(null)
段错误 (核心已转储)


如何才能让他正常不会出现段错误?
隐隐约约的感觉是不是这个字符串数组 {"妹","妹","你","别","走"}; 是常量造成的。感觉自己说不清楚。


各位大侠发表下高见啊。
...全文
97 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
suseyaoyao 2015-11-03
  • 打赏
  • 举报
回复
@fefe82 一语中的啊。 thanks
sdghchj 2015-11-03
  • 打赏
  • 举报
回复
printf的%s不支持nullptr空指针吧
fefe82 2015-11-03
  • 打赏
  • 举报
回复
引用 2 楼 suseyaoyao 的回复:
@paschen 我问的不是这个啊。。 我是指段错误。为什么会有段错误
访问空指针就会段错误啊
suseyaoyao 2015-11-03
  • 打赏
  • 举报
回复
@paschen 我问的不是这个啊。。 我是指段错误。为什么会有段错误
paschen 2015-11-03
  • 打赏
  • 举报
回复
pch[5]是空啊,数组初始化时,如果元素少于个数时,后面会被初始化为0 你pch[6]有六个元素, {"妹","妹","你","别","走"} 只有五个,所以最后一个初始为0,所以就显示(Null)了 就比如你写int a[5] = {1,2,3}; 那么a中的值为 1 2 3 0 0

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧