所以我想复制一个 char 指针,问了一个 friend ,他说要使用 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
最佳答案
在你的第二行:
memcpy=(charFilename,charFilenameAndPath, sizeof(charFilenameAndPath));
有一个虚假的 =
符号。
一旦你解决了这个问题,你的电话无论如何都不正确。 charFilenameAndPath
是 strtok()
的返回值,所以它必须是 char *
。因此,您正在将 sizeof(char *)
字节复制到 charFilename
,您可能需要 strlen(charFilenameAndPath)+1
字节(或者您可以使用 strcpy()
)。在任何情况下,您都应该确保 strtok()
没有返回 NULL
并且 charFilename
有足够的空间。
关于c - 尝试使用 memcpy 复制 char 指针,出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2091507/