Почему в С 0 != 0, а 0 == 0?
замените на if(fabs(height[j])<0.0000001) ...
#include <math.h>
int j;
for (j = 0; j < SIZE_J && ceil(TMP_data_0[j])!=0; j++) {
        height[j] = TMP_data_0[j];
        printf("j = %d\ncurrent = %f\n", j, height[j]);
}
*size = j;
На будующее: выкладывайте полный листинг, а не кусок - какие тпиы переменных, как они заполняются, что вообще происходить с ними.
Кстати, каким компилятором все билдилось?