我想长大字符数组的数组如下:如何种植字符数组的数组用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] 。原型主要根据需要,添加缺少包含指令等 – StoryTeller
'main(argc,argv)' - >'int main(int argc,char ** argv){...}' – BLUEPIXY
这不是一个“ char'数组“,但是指向指针的指针。完全不同的数据类型。 – Olaf