無法從“const char *”轉換為“char *”


寫了如下的一段代碼:

const char *str;
char *p=str;

提示錯誤:

const char* 不能用於初始化char *類型的實體。這是為什么?我想應該是const char *要求比較嚴格,賦給一個要求低的

不行(如果p更改了內容就后患無窮了),所以禁止了直接賦值。

 

指向const的指針不能被賦給指向非const的指針,所以應該用strcpy,也就是另開一塊內存,把字符一個個復制過去
const char *expr = "goodidea";
char *buf = new char[strlen(expr)+1];
strcpy(buf, expr);
strcpy定義。
char * strcpy ( char * destination, const char * source );

從定義我們可以看到,第二個參數為const char*類型。char *可以賦給const char *.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM