保持c++语言的结构,如何使用C语言实现std::append函数
时间: 2024-03-11 10:49:42 浏览: 133
在 C 语言中,没有 std 命名空间,也没有类的概念,所以无法直接实现 std::append 函数。但是我们可以写一个名为 append 的函数,它可以实现向数组中添加元素的功能。
下面是一个示例实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void append(int **arr, int *size, int value) {
(*size)++;
int *new_arr = (int*)realloc(*arr, (*size) * sizeof(int));
if (new_arr == NULL) {
printf("Out of memory!\n");
exit(1);
}
*arr = new_arr;
(*arr)[(*size)-1] = value;
}
int main() {
int *arr = NULL;
int size = 0;
append(&arr, &size, 1);
append(&arr, &size, 2);
append(&arr, &size, 3);
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
free(arr);
return 0;
}
```
这个函数接受一个指向数组的指针、数组大小的指针和要添加的值。它首先将数组大小增加 1,然后使用 realloc() 函数重新分配内存。如果内存分配失败,程序将退出。然后,它将新的数组指针存储在原始数组指针的位置上,并将添加的值存储在数组的最后一个位置上。
在上面的示例程序中,我们定义了一个指向整数数组的指针 arr 和一个整数 size,它们都被初始化为 0。然后,我们调用了三次 append() 函数来向数组中添加元素,并使用 for 循环打印了数组的内容。最后,我们释放了动态分配的内存。
阅读全文