我有一個三維位表數組作爲如何使一個動態三維陣列,其中只有第一維是動態在c
bit_table[dim1][100][200];
第二和第三尺寸總是相同的。
但DIM1有時間成長。
當這bit_table充滿它的大小需要在DIM1尺寸上增長和舊內容需要保留
爲了保持表的舊內容,我應該只是創造臨時數組,將舊數組數據複製到它,並且在數組展開後,將這些數據複製回來?還是有更好的方法來做到這一點?
編輯:
int dim1=10;
unsigned char (*bit_table)[100][200] = (unsigned char)malloc(dim1 * sizeof(*bit_table));
printf("enter new dimension\n");
scanf(dim1);
....
我使用vc2010,我試圖將無效類型的malloc轉換爲無符號字符。請看我的編輯 – John 2012-03-27 13:35:55
@John:你爲什麼要那樣做? 'bit_table'的類型爲'unsigned char(*)[100] [200]',而不是'unsigned char';另外,C中不需要指定'malloc()'的返回值;如果你使用C++,爲什麼不使用'vector'? – Christoph 2012-03-27 13:57:23