I was wondering if it's necessary to free the allocated memory in the following example:
Let's say the first two times memory gets allocated, so data[0] & data[1] are not NULL. Now if the third time malloc() returns NULL, should I first free the memory in data[0] & data[1] before terminating the program or is this unnecessary since the program quits immediatly after?Code:#include <stdio.h> int main() { char **data = malloc(sizeof(char *) * 5); if(data == NULL) { return 0; } int i; for(i = 0; i < 5; i++) { data[i] = malloc(sizeof(char) * 10); if(data[i] == NULL) { // Should I free memory here? return 0; } } return 0; }