怎么在int*的开头和结尾分别添加一个新的数据
时间: 2024-05-16 22:15:39 浏览: 24
假设要在已有的 `int*` 数组的开头和结尾分别添加一个新的数据,可以按照以下步骤操作:
1. 先创建一个新的 `int` 数组,大小比原数组大 2 个单位。可以使用 `new` 运算符动态分配内存,例如:
```cpp
int* new_array = new int[old_size + 2];
```
2. 将原数组中的数据复制到新数组中。可以使用标准库函数 `memcpy` 或者循环遍历原数组实现,例如:
```cpp
memcpy(new_array + 1, old_array, old_size * sizeof(int));
```
或者:
```cpp
for (int i = 0; i < old_size; i++) {
new_array[i + 1] = old_array[i];
}
```
3. 在新数组的开头和结尾分别添加新的数据。例如,将开头的新数据设置为 `new_head`,将结尾的新数据设置为 `new_tail`,则可以这样操作:
```cpp
new_array[0] = new_head;
new_array[old_size + 1] = new_tail;
```
4. 最后,释放原数组占用的内存,并将指针指向新数组。例如:
```cpp
delete[] old_array;
old_array = new_array;
```
完整的代码示例如下:
```cpp
int* add_to_array(int* old_array, int old_size, int new_head, int new_tail) {
int* new_array = new int[old_size + 2];
memcpy(new_array + 1, old_array, old_size * sizeof(int));
new_array[0] = new_head;
new_array[old_size + 1] = new_tail;
delete[] old_array;
return new_array;
}
```
该函数接受一个指向原数组的指针 `old_array`,原数组的大小 `old_size`,以及要添加的开头和结尾的新数据 `new_head` 和 `new_tail`。函数返回一个指向新数组的指针。