#include #include #include struct S { int i, j, k, l, m, n; }; void * CallingMalloc( void * arg __attribute__((unused)) ) { for ( volatile int i = 0; i < 10000; i += 1 ) { volatile int * ip = (volatile int *)malloc( sizeof( int ) * 1 ); volatile int * aip = (volatile int *)malloc( sizeof( int ) * 100 ); volatile struct S * sp = (volatile struct S *)malloc( sizeof(struct S) * 200 ); sp->i = 0; sp->j = 1; sp->k = 2; sp->l = 3; sp->m = 4; sp->n = 5; for(int j = 0; j < 100; j++) { aip[j] = j; } *ip = i; free( (void*)sp ); free( (void*)aip ); free( (void*)ip ); } return NULL; } int main() { while(true) { pthread_t t[15]; for(int i = 0; i < 15; i++) { pthread_create( &t[i], NULL, CallingMalloc, NULL ); } for(int i = 0; i < 15; i++) { pthread_join( t[i], NULL ); } } }