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 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序
  • ¥15 onvif+openssl,vs2022编译openssl64
  • ¥15 iOS 自定义输入法-第三方输入法
  • ¥15 很想要一个很好的答案或提示
  • ¥15 扫描项目中发现AndroidOS.Agent、Android/SmsThief.LI!tr
  • ¥15 怀疑手机被监控,请问怎么解决和防止
  • ¥15 Qt下使用tcp获取数据的详细操作
  • ¥15 idea右下角设置编码是灰色的
  • ¥15 全志H618ROM新增分区