float **tree0;
tree0 = (float**)malloc(255 * sizeof(float*));
for( i = 0; i < 255; i++)
tree0[i] = (float*)malloc(M * sizeof(float));
for(i = 0; i < 255; i++)
for( k = 0; k < M; k++)
tree0[i][k] = 2;
このまま解放すればいいのに
free(tree0);
どこかでヒープ破損エラーが発生していて、これが問題かもしれないと思っていました...