ciao a tutti, ho un problema con il realloc, non capisco xchè a volte mi restituisce null. So che questo succede quando non c'è abbastanza memoria.. ma per un programmino in C stupidissimo e con i pc a nostra disposizione direi che questo è impossibile.

la funzione incriminata è:

Codice PHP:
void InserimentoNodo(GRAFO *GrafoxmlChar NomeNodo[200] )
{
  
NODO *New;

    
// se l'array non è sufficiente, alloca ulteriore spazio
    
if ( Grafo->NumNodi == Grafo->MaxNodi )
    { 
Grafo->MaxNodi += LOTTONODI;
      
Grafo->PrimoNodo = (NODO *) realloc Grafo->PrimoNodo,
                                            
Grafo->MaxNodi sizeof(NODO) );
          
    }
    if (
Grafo->PrimoNodo==NULL) {
        
printf("ERRORE REALLOC");
        
system("pause");
    }

    New = 
Grafo->PrimoNodo Grafo->NumNodi// la prima casella libera
    
strcpy (New->GlossaNomeNodo);
    New->
Visita =    0;
    New->
Link   NULL;
    
Grafo->NumNodi ++ ;

L'errore non è sempre uguale, l'ho provato su diversi pc.. su uno per esempio fa bene 2 realloc.. e al terzo esce null, su un altro invece si blocca al primo realloc.

da cosa può dipendere? cosa sbaglio? pls help me, sto sclerando