Я пытаюсь вырастить следующий массив символьных массивов:Как вырастить массив символьных массивов в C
char input_channel_name[ 20 ][ 36 ];
Количество столбцов всегда будет 36, но количество строк может варьироваться. Когда я открываю файл, я могу захватить количество названий каналов как целое number_of_channels_in
Я попытался преобразовать его в код последующего (с помощью Resizing 2D Arrays in C) без везения:
#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);
}
}
я держу получение
ошибка C2143: синтаксическая ошибка: отсутствует ';' до того 'типа'
, когда я пытаюсь установить input_channel_name = malloc
Есть идеи?
Пожалуйста, найдите время, чтобы сделать вашу программу надлежащего [mcve] , Prototype main по необходимости, добавить отсутствующие директивы и т. Д. – StoryTeller
'main (argc, argv)' -> 'int main (int argc, char ** argv) {...}' – BLUEPIXY
Это не «массив' char' arrays ", но указатель на указатель. Полностью разные типы данных. – Olaf