相关疑难解决方法(0)

strcpy中的分段错误

考虑下面的程序

    char str[5];
    strcpy(str,"Hello12345678");
    printf("%s",str);
Run Code Online (Sandbox Code Playgroud)

运行此程序时会出现分段错误.

但是当strcpy被替换为以下时,程序运行正常.

strcpy(str,"Hello1234567");
Run Code Online (Sandbox Code Playgroud)

所以问题是当尝试复制到str超过5个字符长度的任何其他字符串时它应该崩溃.

那么为什么它不会因为"Hello1234567"崩溃而只会崩溃为"Hello12345678",即长度为13或超过13的字符串.

该程序在32位机器上运行.

c c++ undefined-behavior

6
推荐指数
3
解决办法
5993
查看次数

标签 统计

c ×1

c++ ×1

undefined-behavior ×1