私はこの関数で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