我們正在返回一個指向我們函數中某個結構的指針。當我們打印出主結構中的某個值時,這是正確的。但是,當我們將該指針傳遞給另一個函數並嘗試訪問某個值時,它將輸出一個不正確的值。看起來這個值是一個地址。無效/空指針不正確的值
這些電話是在我們的主:
struct temp * x = doThis();
printf("x->var1 = %d\n", x->var1);
doThat(&x);
在找時間做,我們打印出:
void doThat(void * x)
{
struct temp * x2 = (struct temp *) x;
printf("x2->var1 %d", x2->var1);
}
的doThis函數返回一個空指針和一個空指針的找時間做函數將作爲參數。
最可能的是,你需要'找時間做(X)'。 –
@KerrekSB它被宣佈爲'doThat(void * x);' – user1553248
你是否不希望你寫這個荒謬的演員,你的團隊中沒有人能夠解釋? –