У меня есть структура, подобная следующей:
typedef struct author
{
char letter;
char *name[200];
int counter;
} Aut, *i_aut;
Он состоит из char и массива «Strings» и int. Моя цель — выделить место в памяти для массива из 30 таких структур, поэтому я попробовал что-то вроде следующего:
i_aut lista_autores=calloc(30,sizeof(Aut));
Однако он всегда возвращает «ошибку сегментации». Я тоже пытался инициализировать по одному, но с тем же результатом. Мой вопрос в том, как мне выделить память такого рода и как я могу получить к ней доступ позже?
Заранее спасибо и извините за опечатку.
char *name[200];
вы можете иметь 200 различных строк в каждой структуре (как вы описали, массив строк). Но: вам также нужно будет зарезервировать струны. Если вам нужна только одна строка с макс. длина 200, удалите*
. - person deviantfan   schedule 16.03.2014name
? - person brokenfoot   schedule 16.03.2014i_aut lista_autores=calloc(30,sizeof(Aut)); free(lista_autores);
и больше ничего между ними? - person Sergey Kalinichenko   schedule 16.03.2014char name[200]
, поскольку у автора есть только одно имя (длиной не более 199)? - person Henno Brandsma   schedule 16.03.2014