如何在C中将char *添加到char **中

时间:2013-01-06 16:29:43

标签: c arrays pointers

我在C(不是C ++)中有一个char数组数组。类型是char **。我知道它的长度,但元素的长度是未知的。 我有另一个char *数组。 需要将此char *附加到我的char **,作为最后一个元素。

3 个答案:

答案 0 :(得分:2)

怎么样:

char **pointers;
char *p;
/* ... */
pointers[last] = p;

您需要做的一件事是last的价值,您可以在向pointers添加元素时轻松跟踪它。

修改

跟踪last的一种简单方法是始终说:

pointers[last++] = p;

另一种方法是保留副本并推进它:

char **pts = pointers;
/* .. */
pts = p;
pts++;

答案 1 :(得分:2)

  

char * arr1 []; //一些已填充元素的已知长度

上述数组的每个元素都是指向字符数组的指针。

  

char * new =“lastElem”//这是你必须附加的字符串

让我们说,arr1有n个元素(每个都是一个字符串)。然后,

  

arr1 [++ n] = new; //这应该这样做,只要arr1中存在空格并且你已经有//字符数组'new'。

答案 2 :(得分:1)

realloc非常容易:

char **array = ...;
array = realloc(array, sizeof(char*)*(LENGTH+1));
array[LENGTH] = last;

(我假设你需要增加array的大小,否则array[LENGTH-1] = last就足够了)