MedicineCabint 2018-10-27 01:48 采纳率: 100%
浏览 1590
已采纳

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

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

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

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

_Str 是 0xCCCCCCCC。

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

  • 写回答

1条回答 默认 最新

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

    望采纳!!!

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

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵