Источник функции realpath
находится в файле canonicalize.c
. Есть такой код:
if (resolved == NULL)
{
rpath = malloc (path_max);
if (rpath == NULL)
return NULL;
}
else
rpath = resolved;
Я думаю, что инициализация, которую вы использовали для массива resolved
библиотечная функция
воспринимает как NULL
и никто не экономит
Попробуйте инициализировать
char *resolved;
resolved=malloc(PATH_MAX);
/* SOME CODE */
free(resolved);