c语言定义一个长度五的数组,填满,然后扩容到10
时间: 2024-12-17 09:44:07 浏览: 7
在C语言中,你可以定义一个固定大小的数组并手动初始化其元素,但是如果你需要动态地改变数组的大小,你需要使用指针和动态内存分配。这里首先定义一个长度为5的数组:
```c
#include <stdio.h>
int main() {
int original_array[5] = {1, 2, 3, 4, 5}; // 初始化一个长度为5的数组
for (int i = 0; i < sizeof(original_array) / sizeof(original_array[0]); i++) {
printf("Array element %d: %d\n", i + 1, original_array[i]);
}
// 扩容数组(这通常使用malloc函数实现,但请注意C99标准后的数组初始化可以支持动态增长)
// 如果你想保持原有内容,需要先复制原始数据
int* extended_array = NULL;
if (extended_array != original_array) { // 防止直接赋值导致野指针问题
extended_array = (int*) realloc(original_array, sizeof(int) * 10); // 动态分配10个整型空间
if (extended_array) {
for (int i = 0; i < 5; i++) {
extended_array[i] = original_array[i]; // 将原数组的数据复制到新数组
}
for (int i = 5; i < 10; i++) {
extended_array[i] = i + 1; // 新部分填充从6开始的数字
}
} else {
printf("Memory allocation failed.\n");
}
}
return 0;
}
```
注意,`realloc()`函数在C标准库中用于调整已分配内存的大小,如果分配失败,它会返回NULL。在这个例子中,我们假设成功了,并且将原数组的内容复制到了新的更大数组。
阅读全文