我有一个c函数,我想返回一个字符串。从C函数返回一个字符串
如果我打印返回之前然后我看到croc_data_0186.idx
如果我尝试打印则返回我看到croc_data_á☼字符串字符串
任何人都可以看到我在做什么错?
问题功能:
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;
}
调用代码:
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);
...
}
可能重复http://stackoverflow.com/questions/2341579/functions-returning -char-pointer) – Lundin 2012-02-21 14:49:09
[从函数返回C字符串]可能的重复(https://stackoverflow.com/questions/1496313/returning-c-string-from-a-function) – 2017-12-12 14:09:41