1 #include <pthread.h>
2 #include <stdio.h>
3 #include <stdlib.h>
4
5 char *pointer;
6
f1(void * p)7 void *f1(void *p) {
8 pointer[0] = 'x'; // thread1 line
9 return NULL;
10 }
11
f2(void * p)12 void *f2(void *p) {
13 pointer[0] = 'y'; // thread2 line
14 return NULL;
15 }
16
main(int argc,char const * argv[])17 int main (int argc, char const *argv[])
18 {
19 for (int i = 0; i < 100; i++) {
20 pointer = (char *)malloc(10); // malloc line
21
22 pthread_t t1, t2;
23 pthread_create(&t1, NULL, f1, NULL);
24 pthread_create(&t2, NULL, f2, NULL);
25
26 pthread_join(t1, NULL);
27 pthread_join(t2, NULL);
28
29 free(pointer);
30 }
31 return 0;
32 }
33