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