[英]trying to copy a char pointer using memcpy, getting an error
所以我想復制一個char指針,問一個朋友,他說要用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
之后是a =
,不應該。 錯誤消息顯示您正在嘗試為符號memcpy
分配新值,這不是您想要執行的操作。
在你的第二行:
memcpy=(charFilename,charFilenameAndPath, sizeof(charFilenameAndPath));
有一個寄生=
標志。
一旦你解決了這個問題,你的電話就不正確了。 charFilenameAndPath
是strtok()
的返回值,因此它必須是char *
。 因此,您將sizeof(char *)
字節復制到charFilename
,您可能需要strlen(charFilenameAndPath)+1
字節(或者您可以使用strcpy()
)。 在任何情況下,您應該確保strtok()
沒有返回NULL
並且charFilename
有足夠的空間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.