【问题标题】:why segmentation fault in second code? [duplicate]为什么第二个代码中有分段错误? [复制]
【发布时间】:2012-12-06 21:18:57
【问题描述】:

可能重复:
Why is this C code causing a segmentation fault?

char array[6] = "kapil";  
array [0] =  'K';    

这段代码运行正常。
但是以下代码会产生分段错误?

char* array = "kapil";  
array [0] =  'K';   

为什么 first 不会产生 seg-fault。

【问题讨论】:

    标签: c string segmentation-fault


    【解决方案1】:

    char* array = "kapil"; 声明一个字符串字面量,等效于const char*。这很可能存在于只读内存中,无法修改。

    严格来说,尝试修改它会导致未定义的行为,但实际上可能会出现段错误。

    【讨论】:

      【解决方案2】:

      char* array = "kapil";使用这种类型的声明,它将kapil复制到只读上下文中,您可以更改其内容。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-04-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-29
        • 2012-07-17
        • 2021-09-30
        相关资源
        最近更新 更多