我有这个变量:
char *var[] = {get_answer(answers, 0), get_answer(answers, 1)};
我想添加get_answer(answers, 2)
作为var[]
的第三个元素,这就是我的尝试:
var[2] = get_answers(answers, 2);
它似乎没有做任何事情。 我应该如何将元素附加到所述变量?
答案 0 :(得分:0)
数组var
的大小是根据初始化期间提供的元素数自动确定的。当您为其分配更多元素时,它不会更改。因此,您无法在var[2]
分配。
您可以使用malloc()
动态分配指针数组。或者在初始化期间提供更多元素,例如NULL指针。或者明确提供数组的大小。
char *var[] = {get_answer(answers, 0), get_answer(answers, 1), NULL, NULL, NULL}; // 5 elements
或
char *var[10] = {get_answer(answers, 0), get_answer(answers, 1), NULL, NULL, NULL}; // 10 elements
答案 1 :(得分:0)
数组定义为:
char *var[] = {get_answer(answers, 0), get_answer(answers, 1)};
已修复"两个元素的大小。它和你写的一样:
char *var[2] = {get_answer(answers, 0), get_answer(answers, 1)};
因此,第三元素没有空间。
有两个基本选择:
1)声明var
有额外条目(或条目)的空间:
char *var[3] = {get_answer(answers, 0), get_answer(answers, 1)};
// ...
var[2] = get_answers(answers, 2);
2)初始化第三个元素:
char *var[] = {get_answer(answers, 0), get_answer(answers, 1), get_answers(answers, 2)};