#include <stdio.h>
#include <stdlib.h>
int* arrayPad(const int* arr, int original_size, int size, int value) {
int* paddedArray = (int*)malloc(size * sizeof(int));
if (paddedArray == NULL || size < original_size) {
puts("malloc error");
return NULL;
}
for (int i = 0; i < original_size; ++i) {
paddedArray[i] = arr[i];
}
for (int i = original_size; i < size; ++i) {
paddedArray[i] = value;
}
return paddedArray;
}
int main() {
int arr[] = {1, 2, 3};
int original_size = sizeof(arr) / sizeof(arr[0]);
int size = 5;
int* paddedArray = arrayPad(arr, original_size, size, 0);
if (paddedArray != NULL) {
for (int i = 0; i < size; ++i) {
printf("%d ", paddedArray[i]);
}
// Free the allocated memory
free(paddedArray);
}
return 0;
}
/*
run:
1 2 3 0 0
*/