伙计们! 编译项目时出错
LoadConnectorModule.cpp:59:72: error: no matching function for call to ‘LoadConnectorModule::generateFileFoundResponse(char*&, int&, char ( * )[1024], int&)’
generateFileFoundResponse(dataBuffer, dataLength, &fileName, fd);
^
LoadConnectorModule.cpp:59:72: note: candidate is:
In file included from LoadConnectorModule.cpp:1:0:
LoadConnectorModule.h:16:10: note: void LoadConnectorModule::generateFileFoundResponse(char*, int, char*, int)
void generateFileFoundResponse(char* dataBuffer, int dataLength, char *fileName, int fd);
这里调用了函数generateFileFoundResponse
char * dataBuffer = NULL;
char fileName[Utils::default_message_size];
int dataLength;
generateFileFoundResponse(dataBuffer, dataLength, &fileName, fd);
并声明为
void generateFileFoundResponse(char* dataBuffer, int dataLength, char *fileName, int fd);
并且该类中的所有其他方法都存在相同的错误。你有什么idea,如何解决这个问题?
最佳答案
fileName
参数是一个char*
,但是您传递了一个char (*) [1024]
(指向数组的指针)。只需传递数组本身并让它衰减为指针:
generateFileFoundResponse(dataBuffer, dataLength, fileName, fd);
// ^ no &
关于c++ - 没有匹配的调用函数 (type&),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34850398/