VS2019 字符串對指針char*賦值編譯器報錯原因及解決方法


2019-05-26   21:55:08

前幾天在敲代碼時,將字符串“Hellow world!”賦值給指針char*類型指針時編譯器報錯的問題

網上搜索后發現

char*是歷史遺留問題,如果程序修改了字符變量變量會有可能導致程序的崩潰,

2019版本的VS對此進行了嚴格控制,編譯器會報錯(C2440)

編譯器錯誤C2440微軟Visual Studio 2019官方文檔如下圖:

關於編譯器錯誤C2440微軟官方給出更多詳細詳細的解釋點下方鏈接:

https://docs.microsoft.com/zh-cn/cpp/error-messages/compiler-errors-1/compiler-error-c2440?f1url=https%3A%2F%2Fmsdn.microsoft.com%2Fquery%2Fdev15.query%3FappId%3DDev15IDEF1%26l%3DZH-CN%26k%3Dk(C2440)%26rd%3Dtrue&view=vs-2019

遇到此問題解決的方法:

  1. 在聲名指針時采用const char*
  2. 采用char a[] = "Hellow world"采用字符數組

運行的結果如下圖


免責聲明!

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



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