Предполагая, что вы действительно хотите, чтобы ваш массив содержал char *
с, а не char
с, вы должны определить свою структуру следующим образом:
typedef struct {
const char **myarr;
/* I assume you actually have more members here */
} mystruct;
и инициализируйте его так:
mystruct s;
s.myarr = (const char **) malloc(30 * sizeof(const char *));
if (!s.myarr) { /* handle out-of-memory condition somehow */ }
Затем вы можете позже расширить его с помощью realloc()
:
const char **tmp = (const char **) realloc(s.myarr, 60 * sizeof(const char *));
if (tmp) s.myarr = tmp;
else { /* handle out-of-memory condition somehow */ }
(Обратите внимание, что если realloc()
вернет NULL
, исходное значение s.myarr
все равно будет действительным.)