Функция возврата строки C возвращает мусор

У меня проблемы с возвратом строки из функции. Он выводит значение мусора в методе main. Я видел аналогичный вопрос на этом форуме, но результаты на этой странице мне не помогли. Я не хочу передавать другую переменную в функцию. Я хочу иметь возможность вернуть строковое значение как есть. Как я могу сделать это?

<pre><code>char *LookupPath(char **argv, char **dir) { /* String Name To Be Returned */ char path_name[MAX_PATH_LEN] = {0}; char *result = malloc(sizeof(path_name)); int i; /* Check To See If File Name Is Already An Absolute Path Name */ if(*argv[0] == '/') { } /* Look In Path Directories */ for(i = 0; dir[i] != NULL; i++) { strncat(path_name, dir[i], sizeof(path_name)); strncat(path_name, "/", sizeof(path_name)); strncat(path_name, argv[0], sizeof(path_name)); result = path_name; if(access(result, F_OK) == 0) { printf("result: %s\n", result); return result; } path_name[0] = '\0'; } /* File Name Not Found In Any Path Variable */ return NULL; } </code></pre>

Ваша помощь очень ценится!

Ответы на вопрос(4)

Ваш ответ на вопрос