所以我有一些C代码:
#include <stdio.h>
#include <string.h>
/* putting one of the "char*"s here causes a segfault */
void main() {
char* path = "/temp";
char* temp;
strcpy(temp, path);
}
这会编译、运行并按其外观运行。但是,如果将一个或两个字符指针声明为全局变量,则 strcpy 会导致分段错误。为什么会这样?显然我对范围的理解存在错误。