#include <stdio.h>
#include <stdlib.h>
int main() {
int rows = 3, cols = 4;
// Dynamically allocate memory
int** array = (int**)malloc(rows * sizeof(int*));
if (array == NULL) {
printf("Memory allocation failed for rows.\n");
return 1;
}
for (int i = 0; i < rows; i++) {
array[i] = (int*)malloc(cols * sizeof(int));
if (array[i] == NULL) {
printf("Memory allocation failed for row %d.\n", i);
// Free previously allocated rows before exiting
for (int j = 0; j < i; j++) {
free(array[j]);
}
free(array);
return 1;
}
}
// Deallocate memory
for (int i = 0; i < rows; i++) {
free(array[i]); // Free each row
}
free(array); // Free the array of pointers
return 0;
}
/*
run:
*/