Olá pessoal.  Estou construindo um programa pro meu mestrado e resolvi usar alocação dinâmica de matrizes. A versão sem alocação dinâmica funciona direitinho. Após eu colocar a alocação dinâmica, coisas bizarras acontecem no programa, tipo: certas variáveis assume valores inesperados.  Segue o código que resume o que eu estou fazendo para a alocação dinâmica.   
#include <stdio.h>
#include <stdlib.h>
int DIST = 100;
int main(int argc, char** argv)
{
    int DM,i,j,k,ok;
    double *dist,temp;
    
    DM=1;
    dist = (double *) calloc (DM,sizeof(double));
    dist[0] = 0.0;
    
    for(i=0;i<DIST;i++){
        for(j=1;j<DIST;j++){
            temp = sqrt( i*i + j*j );
            ok=0;
            for(k=0;k<DM;k++){
                if(dist[k]==temp){
                    ok = (dist[k]==temp);
                    break;
                }
            }
            if(ok==0){
                DM++;
                dist = realloc (dist, DM*sizeof(double));
                dist[DM-1] = temp;
            }
        }
    }
    
    return 0;
}  Tem algo errado no código acima? Desde já agradeço a ajuda. Abraço