#include<stdio.h>
#include<unistd.h>
#include<pthread.h>
void* func(void*);
int main()
{
int numb = 0;
pthread_t pid;
pthread_attr_t attr;
pthread_attr_init(&attr);
pthread_create(&pid, &attr, func, (void*)&numb);
printf("%s%d\n", "Number: ", numb);
return 0;
}
//..............defintation...............
void* func(void* data)
{
int* numb = (int*)data;
*numb = 1000;
}
Ich möchte die Nummer als Referenz an die Funktion "func" übergeben. Ich tat dies, indem ich die Adresse der Zahl "(void *) & taub" übergab. Ich änderte den Wert auf 1000 in der Funktion und druckte den Wert in Haupt, aber der Ausgang ist 0 anstelle von 1000.Wert als Referenz in Pthread übergeben
Danke !!!
Sie haben eine Race Condition - und 'main' gewann –
@EdHeal: Bitte schreiben Sie keine Antworten in Kommentare. Kommentare unterliegen nicht der üblichen Aufsicht über den Antwortbereich: Downvotes, Representation, Reviews, Änderungsvorschläge, Bounties, Beitrag zur Fragenverwaltung (Regeln zu einigen Dingen, die bei Fragen auftreten können, hängen davon ab, ob eine Antwort vorliegt) usw. _Answers gehören im Antwortbereich. NUR._ –
@BarryTheHatchet - Ich glaube nicht, dass mein Kommentar als Antwort gerechtfertigt werden kann - aber du bekommst +1, wenn du das für mich tust –