RicardasSim icon

free();

RicardasSim | PRO | 08/10/20 09:31:52 PM UTC | 0 ⭐ | 2181 👁️ | Never ⏰ | []
C |

1.25 KB

|

None

|

0 👍

/

0 👎

//-std=c99 -Wall -Wextra -Wpedantic -Wshadow
 
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <stdbool.h>
 
#define TEST_SIZE 1000000 
 
int32_t *p1;
int32_t *p2;
int32_t *p3;
 
void cleanup()
{
 
    free(p1);
    free(p2);
    free(p3);
 
}
 
int main()
{
 
    int32_t *p_loc_1;
    int32_t *p_loc_2;
    int32_t *p_loc_3;  
 
    p_loc_1 = malloc( TEST_SIZE * sizeof *p_loc_1 );
    p_loc_2 = malloc( TEST_SIZE * sizeof *p_loc_2 );
    p_loc_3 = malloc( TEST_SIZE * sizeof *p_loc_3 );
 
    if ( !p_loc_1 || !p_loc_2 || !p_loc_3 )
    {
        printf( "Error: cannot allocate memory (1).\n" );
        
        free( p_loc_1 );
        free( p_loc_2 );
        free( p_loc_3 );
 
        return 1;
    }
 
    // ... code ...
 
    free( p_loc_1 );
    free( p_loc_2 );
    free( p_loc_3 ); 
 
    /**************************************************************/
 
    p1 = malloc( TEST_SIZE * sizeof *p1 );
    p2 = malloc( TEST_SIZE * sizeof *p2 );
    p3 = malloc( TEST_SIZE * sizeof *p3 );
 
    if ( !p1 || !p2 || !p3 )
    {
        printf( "Error: cannot allocate memory (2).\n" );
        
        cleanup();
 
        return 1;
    }
 
    // ... code ...
 
    cleanup();
 
    return 0;
}
 

Comments