Способ сделать это с malloc
. Сначала объявите только указатель:
char *str;
Тогда в функции init вы malloc
это:
str = malloc(sizeof(*str) * size_of_array);
Это выделяет size_of_array
элементов размера, на которые указывает str
(в данном случае char
).
Вам следует проверить, не произошло ли выделение:
if (str == NULL) {
// allocation failed
// handle the error
}
Обычно вы должны убедиться, что free
это выделенная память, когда вы закончите с ней. Тем не менее, в этом случае str
является глобальным, поэтому он никогда не выходит из области видимости, и память будет free
d, когда программа завершится.