1

所以我想复制一个 char 指针,问了一个朋友,他说要使用 memcpy ......所以我正在尝试这样做:

charFilenameAndPath=strtok(filename,".");
memcpy=(charFilename,charFilenameAndPath, sizeof(charFilenameAndPath));

并且编译器吐出这个:

uTrackSpheres.cpp:176: 错误: 分配函数'void* memcpy(void*, const void*, size_t)'
uTrackSpheres.cpp:176: 错误:无法在赋值中将 'unsigned int' 转换为 'void*(void*, const void*, size_t)throw ()'

我也尝试使用 strlen 而不是 sizeof

4

2 回答 2

2

memcpy后面是 a=并且不应该是。错误消息说您正在尝试为符号分配一个新值memcpy,这不是您想要做的。

于 2010-01-19T06:19:08.100 回答
2

在你的第二行:

memcpy=(charFilename,charFilenameAndPath, sizeof(charFilenameAndPath));

有一个虚假的=迹象。

一旦你解决了这个问题,你的电话无论如何都不正确。 charFilenameAndPath是 的返回值strtok(),所以它必须是char *。因此,您将sizeof(char *)字节复制到charFilename,您可能需要strlen(charFilenameAndPath)+1字节代替(或者您可以使用strcpy())。无论如何,您应该确保它strtok()没有返回NULL并且charFilename有足够的空间。

于 2010-01-19T06:26:30.833 回答