簡體   English   中英

嘗試使用memcpy復制char指針,收到錯誤

[英]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));

有一個寄生=標志。

一旦你解決了這個問題,你的電話就不正確了。 charFilenameAndPathstrtok()的返回值,因此它必須是char * 因此,您將sizeof(char *)字節復制到charFilename ,您可能需要strlen(charFilenameAndPath)+1字節(或者您可以使用strcpy() )。 在任何情況下,您應該確保strtok()沒有返回NULL並且charFilename有足夠的空間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM