当我在这个函数上运行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