Я исправил его!Я не могу получить доступ к массиву внутри структуры
typedef struct student
{
char id[11];
}Student;
#include<stdio.h>
#include<stdlib.h>
int main(int argc, char **argv){
int input = 0, i = 0;
FILE * fp = fopen("student.txt", "wt");
if (fp == NULL) {
printf("Error to open student.txt");
return -1;
}
scanf("%d",&input);
student = (Student *)malloc(input*sizeof(Student));
for(i=0;i<input;i++){
strcpy(student[i].id, "a"); // A is just for default.
fprintf(fp,"%s\n",student[i].id);
}
fclose(fp);
return 0;
}
Я исправил комментарии и добрые ответы. И это действительно работает
Спасибо за помощь
я действительно оценил его! Это было действительно полезно.
Что такое 'student'? –
Почему 'student = (Student *) malloc (input * sizeof (Student));' выполняется в цикле? Вы просто перенаправляете новый адрес на тот же указатель, который будет утечка предыдущих распределений, которые вы не освободили. – Michael
Пожалуйста, напишите [Минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve) –