...
In this example, the memory referred to by x
may freed twice: once if error_condition
is true and again at the end of the code.
Code Block |
---|
int *x = malloc (number * sizeof(int));
if (x == NULL) {
/* Handle Allocation Error */
}
/* ... */
if (error_conditon == 1) {
/* Handle Error Condition*/
free(x);
}
/* ... */
free(x);
|
...
Only free a pointer to dynamic memory referred to by x once. This is accomplished by removing the call to free()
in the section of code executed when error_condition
is true.
Code Block |
---|
int *x = malloc (number * sizeof(int));
if (x == NULL) {
/* Handle Allocation Error */
}
/* ... */
if (error_conditon == 1) {
/* Handle Error Condition*/
}
/* ... */
free(x);
|
...