所以我想复制一个字符指针,问一个朋友,他说要用memcpy ...所以我试着这样做:
charFilenameAndPath=strtok(filename,".");
memcpy=(charFilename,charFilenameAndPath, sizeof(charFilenameAndPath));
并且编译器正在吐出这个:
uTrackSpheres.cpp:176: error: assignment of function ‘void* memcpy(void*, const void*, size_t)’
uTrackSpheres.cpp:176: error: cannot convert ‘unsigned int’ to ‘void*(void*, const void*, size_t)throw ()’ in assignment
我也尝试使用strlen而不是sizeof
2 回答
在你的第二行:
有一个假的
=
标志 .一旦你解决了这个问题,你的电话就不正确了 .
charFilenameAndPath
是strtok()
的返回值,因此它必须是char *
. 因此,您将sizeof(char *)
个字节复制到charFilename
,您可能需要strlen(charFilenameAndPath)+1
字节(或者您可以使用strcpy()
) . 无论如何,你应该确保strtok()
没有返回NULL
并且charFilename
有足够的空间 .memcpy
之后是=
,不应该是 . 错误消息显示您正在尝试为符号memcpy
分配新值,这不是您想要执行的操作 .