есть такой код:
unsigned int **edges; ... edges = (unsigned int **) calloc (sizeof(unsigned int *), initial_size); ... edges = (unsigned int **) realloc (edges, size+size2change)*sizeof(unsigned int*));
после чего значение edges меняется, и все записанные значения теряются. это как? в мане написано, что realloc либо сохраняет значение указателя, либо возвращает NULL