このコードはうまくコンパイルされますが、実行中にセグメンテーションフォールトエラーが発生しますか?なぜ誰に言えますか?Cでの単純な文字列ランタイムエラー?
#include <stdio.h>
#include <string.h>
#include <math.h>
int main() {
const char s2[] = "asdfasdf";
char* s1;
strcpy(s1, s2);
printf("%s", s1);
return 0;
}
コードをコンパイルしても、安定したプログラムが保証されるわけではありません。コンパイラは*いくつかのチェックを行いますが、少なくともC言語ではないすべての危険なプログラムを排除する方法はありません。他の多くの言語ははるかに保護されていますが、ほとんどの場合、方法Cは行う。 – quark