Retourne une chaîne à partir d'une fonction en C

J'ai une fonction c que je veux renvoyer une chaîne de caractères.

Si j'imprime la chaîne avant de la restituer ensuite je vois croc_data_0186.idx

Si j'essaie et imprimer le chaîne retournée puis je vois croc_data_á☼

N'importe qui peut voir ce que je fais de mal?

Problème de la fonction:

char* getSegmentFileName(FILE *file, int lineLength, int lineNumber)
{
    char* fileNameString;

    fseek(file, lineNumber * lineLength, SEEK_SET);

    char line[lineLength];
    fgets(line, lineLength, file);

    char *lineElements[3];
    lineElements[0] = strtok(line, ":");
    lineElements[1] = strtok(NULL, ":");
    lineElements[2] = strtok(NULL, ":");

    fileNameString = lineElements[2];

    printf ("getSegmentFileName fileNameString is: %s \r\n", fileNameString);

    return fileNameString;
}

Code d'appel:

int indexSearch(FILE *file, char* value, int low, int high, char* segmentFileName)
{
    ...

    segmentFileName = getSegmentFileName(file, lineLength, mid);
    printf ("indexSearch: segmentFilename3 is: %s \r\n", segmentFileName);

    ...
}

OriginalL'auteur Dunc | 2012-02-21