利用VS2019編寫以下C風格的代碼時太颤,會出現(xiàn)E0144報錯:
char* text = "Hello world";
//初始化字符型指針出現(xiàn)報錯
網(wǎng)上查了一下谨垃,一部分人說是vs版本兼容性問題,新版本vs2017窖式,2019都會遇到這個問題,新版本vs對此有更嚴格的要求动壤。
目前總結(jié)到了3種解決方法萝喘,親測有效,可以根據(jù)你的使用習慣選擇一種方法琼懊。
-
方法1蜒灰,不改代碼,修改項目屬性肩碟。項目>>屬性>>C/C++>>語言>>符合模式,將符合模式由是改為否(優(yōu)點是不需要修改代碼凸椿,缺點是每寫新的項目就要修改一次設置)
- 方法2削祈,修改代碼,先用另外的字符數(shù)組存儲
Hello world
脑漫,再對字符型指針進行初始化
char ch1[] = "Hello world";
char* text = ch1;
- 方法3髓抑,修改代碼,將
char
類型強轉(zhuǎn)為char*
char* text = (char*)"Hello world";
事實上优幸,在我看來吨拍,使用c++時可以利用STL標準庫#include<string>
來滿足你的需求,相比于傳統(tǒng)c風格的#include<cstring>
更靈活网杆,不會出現(xiàn)莫名其妙的錯誤羹饰。強制類型轉(zhuǎn)換也可以使用static_cast<>()
,這里就不嘗試了碳却。
以上就是【"const char *" 類型的值不能用于初始化 "char *" 類型的實體】報錯的解決方法了队秩,希望對大家有所幫助~
如果覺得我的文章對你起到了些許的幫助,做下手指操點擊下面的大拇指??感謝~
我是專注自動駕駛昼浦、Lidar感知馍资、三維點云處理、激光SLAM領域的阿川关噪,歡迎各位志同道合的朋友在下面積極留言鸟蟹。欲將心事付瑤琴,希望能在交流中收獲知識使兔、經(jīng)驗和摯友??