Soy try to make a code that take a .txt in imput and create dynamically a list of particle (with the structure particle created in a header file). The problem here is that when I try to printf the values of the list after it's values are implemented with the scanf function, the only thing gcc return is a list of int 0. Do you know what is wrong with my code? Thank you by advance and sorry for my bad english(I'm French)
int main(int argc, char **argv) {
FILE *p_file = NULL;
p_file = fopen(argv[1], "r");
if (p_file == NULL) {
fprintf(stderr, "Cannot read file %s!\n", argv[1]);
exit(EXIT_FAILURE);
}
int particle_number;
int fscanf_result = fscanf(p_file, "%d\n", &particle_number);
printf("nombre de particules : %d\n", particle_number);
double px;
double py;
double vx;
double vy;
double mass;
double radius;
double color;
int line_nbr = 0;
particle *list_of_particle;
list_of_particle = (particle*)malloc(particle_number * sizeof(particle));
fscanf_result = fscanf(p_file, "%lf,%lf,%lf,%lf,%lf,%lf,%lf\n", &px, &py, &vx, &vy, &mass, &radius, &color);
while (fscanf_result != EOF) {
if (fscanf_result != 7) {
printf("Line number %d is not syntactically correct in particles-tests!\n",
line_nbr);
exit(EXIT_FAILURE);
}
particle *p = malloc(sizeof(particle));
(p -> position).x = px;
(p -> position).y = py;
(p -> velocity).x = vx;
(p -> velocity).y = vy;
p -> mass = mass;
p -> radius = radius;
p -> color = color;
printf("couleur du pointeur : %d\n", (p -> color));
list_of_particle[line_nbr] = *p;
line_nbr ++;
printf("vérification de la couleur de la liste : %d\n", (list_of_particle[line_nbr]).color);
printf("valeur du fscanf : %d\n", fscanf_result);
//printf("vérification du rayon de la particule numéro %d : %lf\n", line_nbr, (list_of_particle[line_nbr] -> radius));
fscanf_result = fscanf(p_file, "%lf,%lf,%lf,%lf,%lf,%lf,%lf\n", &px, &py, &vx, &vy, &mass, &radius, &color);
free(p);
}
fclose(p_file);
p_file = NULL;
}