Ich versuche, die folgende Reihe von Zeichen-Arrays zu wachsen:Wie Array von Zeichen-Arrays in C wachsen
char input_channel_name[ 20 ][ 36 ];
Die Anzahl der Spalten wird immer 36 sein, aber die Anzahl der Zeilen variiert. Wenn ich meine Datei öffnen, kann ich die Anzahl der Kanalnamen als Integer greifen number_of_channels_in
habe ich versucht, es zu Folge Code zu konvertieren (mit Hilfe von Resizing 2D Arrays in C) ohne Glück:
#define ROWS 20
#define COLS 36
main(argc, argv)
char **input_channel_name;
input_channel_name = malloc(sizeof *input_channel_name * ROWS);
if (input_channel_name)
{
for (size_t i = 0; i < ROWS; i++)
input_channel_name[i] = malloc(sizeof *input_channel_name[i] * COLS);
}
get_input_channels:
input_file = fopen(input_name, "rb")
fread(plotFileHeader.headerFloats, sizeof(float), 2, input_file);
number_of_channels_in = plotFileHeader.headerFloats[ N_CHAN_SUB ];
add_rows = number_of_channels_in - ROWS;
char **tmp = realloc(input_channel_name, sizeof *input_channel_name * ROWS + add_rows);
if (tmp)
{
input_channel_name = tmp;
for (size_t i = 0; i < add_rows; i++)
{
input_channel_name[ROWS + i] = malloc(sizeof *input_channel_name[ROWS + i] * COLS);
}
}
Ich behalte bekommen
Fehler C2143: Syntaxfehler: fehlende ';' vor 'Typ'
wenn ich versuche, input_channel_name = malloc
Irgendwelche Ideen zu setzen?
Bitte nehmen Sie sich die Zeit, Ihr Programm ein proper [MCVE] machen . Prototyp main wie erforderlich, fehlende include-Direktiven usw. – StoryTeller
'main (argc, argv)' -> 'int main (int argc, char ** argv) {...}' – BLUEPIXY
Das ist kein "Array von' char'arrays ", sondern ein Zeiger auf den Zeiger. Völlig verschiedene Datentypen. – Olaf