Чтобы напечатать адрес вашей памяти malloc, выполните
printf("Working with pointer %p\n", p->str);
У вас есть код, который не печатает адрес памяти, возвращенный функцией malloc (), он печатает адрес str
переменная в структуре thread_params
.Этот адрес, вероятно, будет одинаковым каждый раз, так как местоположение вашей переменной thread_args
, вероятно, не меняется между итерациями цикла.
Обратите внимание, что без вызова pthread_join()
вы передадите указатель нановый поток для переменной, которая выходит из области видимости на следующей итерации вашего цикла, что может привести к неопределенному поведению, поэтому следует учитывать время жизни всего, что вы передаете в pthread_create