當我在這個函數上運行valgrind時,它說我肯定已經丟失了4個字節。我知道這是因爲我重定向x = y中的指針x,從而失去了訪問第一行中分配的初始內存的權限。我該如何解決?這裏的正確原則是什麼?我只是在學習C,所以我試圖去理解這一切。謝謝!在C內存泄漏中重定向指針
int main() {
int* x = malloc(sizeof(*x));
int* y = malloc(sizeof(*y));
*x = 2;
*y = 5;
x = y;
*y = 6;
*x = 4;
printf("y = %d\n", *y);
free(x);
free(y);
return 0;
}
嗨,傑森是對的 – madper 2012-03-20 01:11:42