5

我有一个数组,但我想在最后添加一些东西而不覆盖它已经存在的任何数据。它必须是一个数组而不是一个向量,因为它是一个赋值。

4

3 回答 3

14

从评论中,听起来您不想添加到数组的末尾,而是部分填充数组并跟踪您写入的数据量。您只需要一个变量来跟踪它:

char array[10];
size_t size = 0;

// Add characters:
array[size++] = 'H';
array[size++] = 'e';
array[size++] = 'l';
array[size++] = 'l';
array[size++] = 'o';

您需要确保永远不要超出数组的末尾,否则会损坏其他内存。

于 2013-02-04T10:24:18.073 回答
4

C++ 数组不可扩展。您要么需要使原始数组更大并在单独的变量中保留有效元素的数量,要么创建一个新的(更大的)数组并复制旧内容,然后是要添加的元素。

于 2013-02-04T10:04:25.493 回答
1

您可以创建一个大于第一个的数组并复制所有元素,然后在数组末尾添加新元素。

或者,您可以将数组转换为向量,添加一个元素,然后将向量转换回数组。看一下: 如何在 C++ 中将向量转换为数组将数组转换为向量的最简单方法是什么?

于 2013-02-04T10:04:16.787 回答