我使用minilibX庫在C中製作光線跟蹤引擎。 我希望能夠在一個.conf
文件場景的配置,以讀取顯示:初始化char **的無限數量
例如:
([email protected] 117)cat universe.conf
#randomcomment
obj:eye:x:y:z
light:sun:100
light:moon:test
對象的數量可以在1至無限之間變化。 從現在起,我在一個char讀取文件,拷貝每行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