だから私はいくつかの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 はセグメンテーション違反になります。なぜこれが起こるのですか?明らかに、スコープの理解に誤りがあります。