【发布时间】:2021-01-24 22:38:29
【问题描述】:
我正在尝试执行以下操作,使用其他 char 变量创建一个多字符数组。
char data_info_1[] = "Wellcome.";
char data_info_2[] = "Please";
char data_info_3[] = "If";
int size_line= sizeof(data_info_1)/sizeof(data_info_1[0]);
char data_info[3][size_line]={{data_info_1},{data_info_2},{data_info_3}};
一个解决方案将是以下一个,但我对将字符串直接放入 data_info 变量不感兴趣
char data_info[3][size_line]={{"Wellcome"},{"Please"},{"If"}};
请你解释一下为什么我写的第一件事是无效的。如果我的问题有解决方案。
谢谢。
【问题讨论】:
-
data_info_x是一个指针,所以你需要一个指针数组。 -
@user3386109
data_info_x是一个数组,而不是一个指针。对于上面发布的示例sizeof data_info_1产生10,它看起来根本不像指针的大小。 -
@pmg 在初始化器
char data_info[3][size_line]={{data_info_1} ...中,data_info_1是一个指针,所以data_info必须是一个指针数组。
标签: arrays c initialization declaration c-strings