我在C(不是C ++)中有一个char数组数组。类型是char **。我知道它的长度,但元素的长度是未知的。 我有另一个char *数组。 需要将此char *附加到我的char **,作为最后一个元素。
答案 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
就足够了)