Mon programme C plante et je suis trop nouveau pour le comprendre. C'est très simple jusqu'ici et j'imagine que le code est suffisant pour comprendre ce qui ne va pas. J'essaie simplement de lire un fichier ligne par ligne. Je vais doubler la mémoire d'une structure une fois que je suis hors de la mémoire. Si ce n'est pas assez d'informations, je donnerai tout ce dont vous avez besoin.structure realloc avec fonction dans C
Merci beaucoup pour votre aide, car je suis coincé depuis des heures.
/*
John Maynard
1000916794
7/15/2013
HW-06
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 100
struct course
{
char subject[11];
int catalogNum;
int sectionNum;
int enrollmentTotal;
int enrollmentCap;
};
void readFile(struct course *d, char* filename);
void double_array_size(struct course *d, int new_size);
int main(void)
{
char *filename = "hw06-data.csv";
struct course *d;
d = malloc(N * sizeof(struct course));
readFile(d, filename);
}
void readFile(struct course *d, char* filename)
{
FILE* fp;
char buffer[100];
int i = 0, array_size = 100;
struct course *temp;
if((fp = fopen(filename, "r")) == NULL)
{
printf("Unabale to open %s.\n", filename);
exit(1);
}
fgets(buffer, sizeof(buffer), fp);
while(fgets(buffer, sizeof(buffer), fp) != NULL)
{
if (i == array_size)
{
array_size *= 2;
double_array_size(d, array_size);
printf("reached limit...increasing array to %d structures\n", array_size);
}
i++;
}
fclose(fp);
}
void double_array_size(struct course *d, int new_size)
{
struct course *temp;
temp = realloc(d, new_size * sizeof(struct course));
if(temp == NULL)
{
printf("unable to reallocate\n");
exit(1);
}
else
d = temp;
}
Dans ce cas, il devrait être 'cours struct ** de d' et' * d = realloc (* d, ...) ' –
vous avez raison, j'ai écrit C++, désolé –