#include #include #include #include #define TEST_A_MAX_SIZE 1000000 typedef struct thread_test_a { uint32_t *variables; uint32_t test_count; } s_test; s_test *thread_test_1; s_test *thread_test_2; s_test *thread_test_3; int main() { thread_test_1 = malloc( sizeof *thread_test_1 ); if ( !thread_test_1 ) { printf("Error: cannot allocate memory (1).\n"); return 1; } thread_test_2 = malloc( sizeof *thread_test_2 ); if ( !thread_test_2 ) { free(thread_test_1); printf("Error: cannot allocate memory (2).\n"); return 1; } thread_test_3 = malloc( sizeof *thread_test_3 ); if ( !thread_test_3 ) { free(thread_test_1); free(thread_test_2); printf("Error: cannot allocate memory (3).\n"); return 1; } thread_test_1->variables = malloc( TEST_A_MAX_SIZE * sizeof (uint32_t) ); if ( !thread_test_1->variables ) { printf("Error: cannot allocate memory (4).\n"); free(thread_test_1); free(thread_test_2); free(thread_test_3); return 1; } thread_test_2->variables = malloc( TEST_A_MAX_SIZE * sizeof (uint32_t) ); if ( !thread_test_2->variables ) { printf("Error: cannot allocate memory (5).\n"); free(thread_test_1->variables); free(thread_test_1); free(thread_test_2); free(thread_test_3); return 1; } thread_test_3->variables = malloc( TEST_A_MAX_SIZE * sizeof (uint32_t) ); if ( !thread_test_3->variables ) { printf("Error: cannot allocate memory (6).\n"); free(thread_test_1->variables); free(thread_test_2->variables); free(thread_test_1); free(thread_test_2); free(thread_test_3); return 1; } thread_test_1->test_count = TEST_A_MAX_SIZE; thread_test_2->test_count = 10; thread_test_3->test_count = 50; printf( "%d\n", thread_test_1->test_count ); printf( "%d\n", thread_test_2->test_count ); printf( "%d\n", thread_test_3->test_count ); thread_test_1->variables[TEST_A_MAX_SIZE-1] = 1; thread_test_2->variables[10] = 2; thread_test_3->variables[50] = 3; printf( "%d\n", thread_test_1->variables[TEST_A_MAX_SIZE-1] ); printf( "%d\n", thread_test_2->variables[10] ); printf( "%d\n", thread_test_3->variables[50] ); free(thread_test_1->variables); free(thread_test_2->variables); free(thread_test_3->variables); free(thread_test_1); free(thread_test_2); free(thread_test_3); return 0; }