如何在C中将元素追加到char * var []?

时间:2016-10-16 12:01:31

标签: c

我有这个变量:

char *var[] = {get_answer(answers, 0), get_answer(answers, 1)};

我想添加get_answer(answers, 2)作为var[]的第三个元素,这就是我的尝试:

var[2] = get_answers(answers, 2);

它似乎没有做任何事情。 我应该如何将元素附加到所述变量?

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)};