Неправильные идентификаторы потоков в многопоточной C-программе?

Я новичок в многопоточности в C, и у меня возник этот вопрос. Я написал следующий код:

#include 
#include 
#include 

pthread_mutex_t m=PTHREAD_MUTEX_INITIALIZER;
pthread_attr_t attr;

void* test(void *a)
{
    int i=*((int *)a);
    printf("The thread %d has started.\n",i);
    pthread_mutex_lock(&m);
    sleep(1);
    printf("The thread %d has finished.\n",i);
    pthread_mutex_unlock(&m);
    pthread_exit(NULL);

}

int main()
{
    int i=0;
    pthread_attr_setdetachstate(&attr,PTHREAD_CREATE_JOINABLE);
    pthread_t thread[5];

    for (i=0;i

Ответы на вопрос(2)

Ваш ответ на вопрос