最近、同僚に理由を説明しながら困惑しました
char a[100];
scanf("%s", &a); // notice a & in front of 'a'
非常に悪いことであり、それを行うための少し良い方法は次のとおりです。
char a[100];
scanf("%s", a); // notice no & in front of 'a'
Ok。セキュリティ上の理由からscanfを使用すべきではない理由を教えてくれる準備をしているすべての人のために:リラックスしてください。この質問は、実際には「&a」と「a」の意味についてです。
問題は、なぜそれが機能しないのかを説明した後、私たちはそれを(gccで)試しました、そしてそれは機能します=))。私は素早く走った
printf("%p %p", a, &a);
同じアドレスを2回出力します。
誰かが私に何が起こっているのか説明できますか?