これは私の正確なコードではありませんが、本質的にはこのようなものです。main() でスタック変数を作成しようとしています
int **x;
関数 foo(int **x, arg1, arg2, ...) に渡したいもの。ある条件では、foo() で x に動的にスペースを割り当てることになっています
x = (int **) malloc(sizeof(int *) * num_elems);
また、各 int * 要素に新しいスペースを割り当てるのではなく、int y が foo() で作成された場所に &y を割り当てます。
main() で x を解放しようとしたときに、このエラーが発生しました。意味がわかりませんが、おそらく &y? を使ったからだと思います。
編集: また関連: x の二重逆参照要素にアクセスしようとしたときに、ガベージ値を取得しました。