-1

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

4

3 回答 3

2

怎么样:

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

您需要正确处理的一件事是 的值,last并且您可以在将元素添加到pointers.

编辑

一个简单的跟踪方法last是总是说:

pointers[last++] = p;

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

char **pts = pointers;
/* .. */
pts = p;
pts++;
于 2013-01-06T16:30:56.407 回答
2

字符* arr1[]; //已知长度和一些已经填充的元素

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

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

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

arr1[++n] = 新的;// 应该这样做,前提是 arr1 中存在空间并且您已经拥有 // 字符数组 'new'。

于 2013-01-06T16:39:58.947 回答
1

很容易realloc

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

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

于 2013-01-06T16:31:41.137 回答