MedicineCabint 2018-10-26 17:48 采纳率: 100%
浏览 1590
已采纳

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

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

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

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

_Str 是 0xCCCCCCCC。

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

  • 写回答

1条回答 默认 最新

  • 内核之道 PostgreSQL领域优质创作者 2018-10-26 18: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];
        }
    
    
    

    望采纳!!!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

悬赏问题

  • ¥15 VAE代码如何画混淆矩阵
  • ¥15 求遗传算法GAMS代码
  • ¥15 雄安新区高光谱数据集的下载网址打不开
  • ¥66 android运行时native和graphics内存详细信息获取
  • ¥100 求一个c#通过CH341读取数据的Demo,能够读取指定地址值的功能
  • ¥15 rk3566 Android11 USB摄像头 微信
  • ¥15 torch框架下的强化学习DQN训练奖励值浮动过低,希望指导如何调整
  • ¥35 西门子博图v16安装密钥提示CryptAcquireContext MS_DEF_PROV Error of containger opening
  • ¥15 mes系统扫码追溯功能
  • ¥40 selenium访问信用中国