我有一個結構體和一個指向它的某個實例的指針,現在我想創建一個指向該實例的新指針,而不依賴於第一個指針,這樣當我改變第一個指針,第二個指針仍然指向那個實例。 這裏是一個代碼片段:將指針的引用複製到另一個指針C
struct
{
int some;
int variables;
} someStruct;
someStruct *a=malloc(sizeof(someStruct));
a->some=10;
a->variables=20;
someStruct *b;
b=a;
a=NULL;
Thread1
{
/// some operations on "b"
free(b);
}
Thread2
{
free(a);
}
在我的計劃,B也成爲NULL,我怎麼能避免呢?在下面的
它還有另一種名爲sommStruct? – 2014-10-29 09:14:41
你的代碼是正確的(除了結構錯字),但你必須用'b'來釋放內存。 – 2014-10-29 09:16:58
發佈完整的代碼。沒有理由''b''應該用你顯示的代碼'NULL'。 – 2014-10-29 09:17:19