У меня есть следующий код, и мне нужно выделить память для char data[]
. Я пробовал много вещей, но это все еще не работает Кто-нибудь может мне помочь? Я знаю, что мой malloc
не будет ничего выделять для данных, но как это исправить.
Я хотел бы, чтобы данные распределялись следующим образом:
img->data = malloc(sizeof(char)*(img->xsize * img->ysize * 3));
Не могу изменить структуру:
struct ppm {
unsigned xsize;
unsigned ysize;
char data[];
};
struct ppm *img = malloc(sizeof(struct ppm));
if (!img) {
fprintf(stderr, "Chyba alokace pameti.\n");
exit(1);
}
if (fscanf(fp, "%x %x", &img->xsize, &img->ysize) != 2) {
fprintf(stderr, "Spatna velikost obrazku '%s'\n", filename);
exit(1);
}
if (fread(img->data, 3 * img->xsize, img->ysize, fp))
fprintf(stderr, "Nepodarilo se nacist pixely z '%s'\n", filename);
exit(1);
}