Я создаю движок raytracing в C, используя библиотеку minilibX. Я хочу, чтобы иметь возможность читать в .conf
файл конфигурации для сцены для отображения:Инициализация бесконечного числа символов **
Например:
([email protected] 117)cat universe.conf
#randomcomment
obj:eye:x:y:z
light:sun:100
light:moon:test
Количество объектов может изменяться в диапазоне от 1 до бесконечности. С этого момента, я чтение файла, копирование каждую строку 1 на 1 в гольца ** вкладку и mallocing по количеству найденных объектов, например:
void open_file(int fd, struct s_img *m)
{
int i;
char *s;
int curs_obj;
int curs_light;
i = 0;
curs_light = 0;
curs_obj = 0;
while (s = get_next_line(fd))
{
i = i + 1;
if (s[0] == 'l')
{
m->lights[curs_light] = s;
curs_light = curs_light + 1;
}
else if (s[0] == 'o')
{
m->objs[curs_obj] = s;
curs_obj = curs_obj + 1;
}
else if (s[0] != '#')
{
show_error(i, s);
stop_parsing(m);
}
}
Теперь, я хочу быть способный хранить каждую информацию каждого tab[i]
в новом char **tab
, 1 для каждого объекта, используя ':'
в качестве разделителя. Поэтому мне нужно инициализировать и malloc
неопределенное количество char **tab
. Как я могу это сделать?
(Ps: Я надеюсь, что мой код и мой английский будут достаточно хороши для вас, и я использую только самую основную функцию, например, читать, писать, открывать, malloc ... и я переписываюсь, построение всего остального, например printf, get_line и т. д.)
Что не так с распределением нового пространства по мере необходимости? – atk
Мне нужно выделить новую вкладку char ** для каждого нового объекта. Итак, как мне это сделать? Есть ли способ объявить как можно больше вкладок char **, поскольку мне нужно? – Antoninarto