Ich bin ein Neuling in C.Zeigerdaten Rennen in C
int a = 1, b = 2;
int *p = &a;
wenn ein ThreadA wird, um den Zeiger zu ändern p
von Zeige a
-b
zu zeigen, die gleichzeitig eine andere ThreadB Lesen ist Zeiger p
, was Wert könnte threadB lesen? Könnte es ein gebrochener Wert sein (weder 1 noch 2)?
Dies kann von der Plattform/OS abhängen - Warum also riskieren –
Jeder ungeschützte gleichzeitige Zugriff auf eine Variable ist undefiniertes Verhalten. – 2501
Nach dem c-Standard - ja, in allen Mainstream-Compilern/Plattformen - nein. – Dani