#include #include #include int main(void) { size_t old_count = 2; size_t new_count = 4; int *values = malloc(old_count * sizeof *values); if (values == NULL) { return 1; } values[0] = 10; values[1] = 12; if (new_count > SIZE_MAX / sizeof *values) { free(values); return 1; } int *grown = realloc(values, new_count * sizeof *values); if (grown == NULL) { free(values); return 1; } values = grown; for (size_t i = old_count; i < new_count; ++i) { values[i] = 14; } printf("Readings: %d %d %d %d\n", values[0], values[1], values[2], values[3]); free(values); return 0; }