首页 文章

尝试使用memcpy复制char指针,收到错误

提问于
浏览
1

所以我想复制一个字符指针,问一个朋友,他说要用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 回答

  • 2

    在你的第二行:

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

    有一个假的 = 标志 .

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

  • 2

    memcpy 之后是 = ,不应该是 . 错误消息显示您正在尝试为符号 memcpy 分配新值,这不是您想要执行的操作 .

相关问题