我需要一個只能在一個維度上動態生成的多維字符數組...
我必須存儲一對長度爲10(或更少)的字符串,但每個字符串的長度都是可變的「對」。Dynamic Multidimensional array
我的想法是這樣的
char (*instrucao)[2][10];
,給了我一個指向字符的2×10陣列,但是當我做這樣的事,這是不正常:
char strInstrucoes[117], *conjunto = calloc(21, sizeof(char));
instrucao = calloc(1, sizeof(char[2][10]));
conjunto = strtok(strInstrucoes,"() ");
for(i = 0; conjunto != NULL; i++){
realloc(instrucao, i+1*sizeof(char[2][10]));
sscanf(conjunto,"%[^,],%s", instrucao[i][0], instrucao[i][1]);
printf("%s | %s\n", instrucao[i][0], instrucao[i][1]);
conjunto = strtok(NULL, "() ");
}
有strInstrucoes
爲(abc,123) (def,456) (ghi,789)
,我沒有3行2對每個像這樣的矩陣:
abc | 123
def | 456
ghi | 789
但相反,這是我得到:
abc | 123
def | 45def | 45de
ghi | 789
什麼是正確的方法來做到這一點? 謝謝!
絕對正確...並通過我的舊代碼看,我注意到我從來沒有實際分配的指針realloc。好東西,我不用C專業工作,那麼!非常感謝 – Gabe 2009-06-21 21:48:03