strcat(p, p) 不能正常运行的问题
程序代码:
#include<stdio.h> #include<string.h> int main(void) { char buffer[20] = "Hello"; strcat(buffer, buffer); printf("%s", buffer); return 0; }
在阅读 bString 源代码时,文档提到了这一点。
使用 mingw32 编译并运行,gdb 调试结果为:
Program received signal SIGSEGV, Segmentation fault.
0x748b6ca9 in strcat () from C:\WINDOWS\SysWOW64\msvcrt.dll
这个问题肯定与内存重叠有关,请教下具体原因是什么。
使用 VS2019,调试时引发异常
0x79CCEE39 (ucrtbased.dll)处(位于 ConsoleApplication1.exe 中)引发的异常: 0xC0000005: 写入位置 0x00900000 时发生访问冲突。