如何在C++数组末尾添加内容?

7

我有一个数组,但是我想在末尾添加一些内容,而不覆盖已经存在的数据。它必须是数组,而不是向量,因为这是一个任务。


你怎么定义数组?你使用的是标准C语言吗?还是std::某些其他东西? - thang
@thang 我没有使用 std::。 - user2017078
那么像 int x[100] 这样的数组吗?我认为你应该发布一些示例代码。有很多方法可以使用数组...很难确定你想要做什么。 - thang
@thang 嗯,我的数组长度为x[10]个字符。 - user2017078
@MokammelHossainSanju:如果像 x[10] 这样是固定大小的数组,那么你肯定无法扩展它。你需要使用 new[] 动态分配数组;当需要增长时,分配一个新的数组,将数据复制过去,然后删除旧的数组。 - Mike Seymour
显示剩余3条评论
3个回答

15

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

char array[10];
size_t size = 0;

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

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


5

C++数组不能扩展。你要么需要让原始数组更大并维护有效元素数量的单独变量,要么创建一个新的(更大的)数组并复制旧内容,接着添加想要添加的元素。


1
实际上,我认为我的问题是错误的,我的问题应该是:“我的数组长度为10个字符。其中5个具有数据。我将在数组中放入新数据,以便新数据始终添加到数组的末尾”。 - user2017078

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接