"stuList [1] .name"を入力しているときにエラーが発生し、プログラムがクラッシュしました。これをどうやって解決するのですか?構造体内のポインタを使用
#include <stdio.h>
#include <conio.h>
typedef struct student
{
int id;
char *name;
float percentage;
} student;
int main()
{
student stuList[3];
stuList[0].name = "vermidonhapic";
stuList[2].name = "didiervermiyer";
scanf("%s\n",&stuList[1].name);
printf(" name is: %s \n", stuList[0].name);
printf(" name is: %s \n", stuList[2].name);
printf(" name is: %s \n", stuList[1].name);
system("PAUSE");
}
'%s"形式の 'scanf()'は、ポインタが適切に割り当てられたメモリを指していても、非常に危険です。任意の長い文字列を宛先バッファに読み込みます。あなたの配列の終わりを越えて書くことを防ぐ方法はありません。 –