重複の可能性:
c が宣言なしで文字列の初期化を許可するのはなぜですか?
私はこのかなり単純なコードを試しています:
#include<stdio.h>
void copy(char *,char *);
main() {
char *name;
char *surname;
printf("Enter name: ");
scanf("%s",name);
printf("%s",name);
}
しかし、何らかの理由で、名前を入力して を押すEnter
と、プログラムがハングし、「Program has stopped working」のようなメッセージが表示されます。ただし、2番目の文字ポインター宣言を削除するとchar *surname;
、それは期待どおりに機能します。ここで何が問題なのですか?