我无法访问数组内部结构

-3 c printf struct

我修好了它!

  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;
 }          
Run Code Online (Sandbox Code Playgroud)

我已经修改了评论和善意的答案.它确实有效

感谢帮助

我真的很感激!这真的很有用.

bar*_*nos 5

几个笔记:

附:

for (i=0; i<input; i++)
    student = ...
Run Code Online (Sandbox Code Playgroud)

你反复压倒的价值student.

这非常像:

x = 5;
x = 6;
x = 7;
...
Run Code Online (Sandbox Code Playgroud)

不仅如此,在此过程中,您还会对自己造成大量内存泄漏.

有了student = malloc(...),你在每个迭代分配一个新的内存块,然后将此变量设置为指向该内存块,而"忘记"前一个(你将不再能够解除分配).