i haben eine dreidimensionale Bittabelle Array alswie man eine dynamische dreidimensionale Anordnung bilden, wo nur die erste Dimension die dynamische in c ist
bit_table[dim1][100][200];
Die zweiten und dritten Dimensionen sind immer gleich.
Aber dim1 müssen mit der Zeit wachsen.
wenn diese bit_table voll ist seine Größe müssen in der dim1 Dimension und der alten Inhalt muss wachsen, um
beibehalten werden, um den alten Inhalt der Tabelle zu behalten, sollte ich erstellen Sie einfach eine Temporäres Array, kopieren Sie die alten Array-Daten in dieses Array, und kopieren Sie diese Daten zurück, nachdem das Array erweitert wurde. Oder gibt es einen besseren Weg?
EDIT:
int dim1=10;
unsigned char (*bit_table)[100][200] = (unsigned char)malloc(dim1 * sizeof(*bit_table));
printf("enter new dimension\n");
scanf(dim1);
....
ich benutze vc2010 und ich bin stecken zu versuchen, den void-Typ von malloc zu unsigned char typisieren. Bitte sehen Sie meine Bearbeitung – John
@ John: Warum würdest du das tun? 'bit_table' hat den Typ' unsigned char (*) [100] [200] ', nicht' unsigned char'; Außerdem ist das Umwandeln des Rückgabewerts von "malloc()" in C unnötig; Wenn Sie C++ verwenden, warum verwenden Sie keinen 'Vektor'? – Christoph