您的位置:首页 > 其它

指针指向常量的场合,不能试图通过修改指针指向的内容来修改常量

2009-06-29 22:40 288 查看
程序如下

int main()
{
char *apch[3] = {"a a", "s s", "d d"};
int i = 0;

//input 3 string
printf("please input 3 string: ");
for( i = 0; 3 > i; i++ )
{
scanf("%s", apch[i]);
}

//show
for( i = 0; 3 > i; i++ )
{
printf("%s/n", apch[i]);
}

printf("/n");
return 0;
}


GCC编译通过,运行时,输入3个字符串后,提示出现

“Error While dumping state(probably corrupted stack )”

即“在转存时发生异常”:在将输入的每个字符串各自的地址赋给每个对应的指针时,发生异常。

使用GDB调试,得到如下结果:



很明显,错误的使用指针来修改指针指向的常量的内容是存在风险的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐