我正在用 c 编写一个程序,该程序通过“string int”行查看标准输入的文本文件。我最初使用 scanf 使程序运行良好,但现在名称必须是动态字符串(在运行时已知大小),当我将grade_entry 中的名称切换为指针时,它开始出现分段错误
typedef struct grade_entry {
char *name;
int grade;
} grade_entry;
struct grade_entry grade_list[100];
int main(){
int grade;
int done;
int i=0;
do{
puts("not weee\n");
done=(int)strlen(gets(grade_list[i].name));
puts("weee\n");
}while(1);
}
编译和当前输出是:
not weee
segmentation fault(core dumped)
**已解决:我分配了指针,然后为 size+1 重新分配,将 null 添加到末尾。不幸的是,我不能根据 scanf、fgets、gets 的临时内存立即进行 malloc。哦,好的,谢谢大家的帮助