动态增长数组的实现:
完整代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
//Dynamically growing array to save ip address
unsigned int current_element = -1;
unsigned int total_element = 10;
uint32_t* dynamic;
uint32_t* ptr;
int main()
{
dynamic = (uint32_t*)malloc(sizeof(uint32_t) * total_element);
for (int i = 0; i < 100; i++) {
if (current_element >= total_element - 1) {
total_element *= 2;
ptr = (uint32_t*)realloc(dynamic, sizeof(uint32_t) * total_element);
if (ptr == NULL) {
printf("Can't expand the table!!!\n");
return;
}
else {
dynamic = ptr;
}
}
current_element++;
dynamic[current_element] = i;
}
for (int i = 0; i < 100; i++) {
printf("%d ", dynamic[i]);
}
free(dynamic);
return 0;
}