MedicineCabint
2018-10-27 01:48
采纳率: 100%
浏览 1.5k

C++语言为什么没办法连续输入字符串呢?

char *p[5];
for (int i = 0; i < 5; i++)
cin >> p[i];

在编译这一点点代码的时候 
输入第二个字符串的时候就会出现

引发了异常: 写入访问权限冲突。

_Str 是 0xCCCCCCCC。

不明白是为什么。求大神指点。。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • 君子黎 2018-10-27 02:28
    已采纳
    楼主:char *p[5];这里你只是定义声明了p是一个数组指针,该数组共有5个元素,其中每个元素是一个指针。需要对每个指针申请一个char大小的内存空间才能向其中赋值。
    不然肯定是非法操作内存块,所以会段错误。修改方法如下:
    
    
    
    
        char *p[5];int i = 0;
        for (i = 0; i < 5; i++)
        {
            p[i] = new char;    
            cin >> p[i];
        }
    
    
    

    望采纳!!!

    点赞 评论

相关推荐 更多相似问题