C String Return-Funktion Gibt Garbage zurück

Ich habe Probleme, eine Zeichenfolge von einer Funktion zurückzugeben. Es wird ein Müllwert in der Hauptmethode ausgegeben. Ich habe in diesem Forum eine ähnliche Frage gesehen, aber die Ergebnisse auf dieser Seite haben mir nicht geholfen. Ich möchte KEINE weitere Variable an die Funktion übergeben. Ich möchte in der Lage sein, den Zeichenfolgenwert so wie er ist zurückzugeben. Wie kann ich das machen?

<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>

Ihre Hilfe wird gerne in Anspruch genommen!

Antworten auf die Frage(4)

Ihre Antwort auf die Frage