C++錯誤:“const char *“ 類型的值不能用於初始化 “char *“ 類型的實體


在VS2017中使用opencv編寫C++程序時出現如下錯誤:


報錯代碼如下:


     
     
    
   
   
           
  1. char* image_window = "Source Image";
  2. char* result_window = "Result window";

查了查資料,可能的原因是在VS2017版本中使用這種char*的表達方式會造成程序崩潰,所以VS2017對其進行了控件管理。
解決方案:

1、先將字符使用字符數組進行存儲,再使用指針


     
     
    
   
   
           
  1. char image[] = "Source Image";
  2. char result1[] = "Result window";
  3. char* image_window = image;
  4. char* result_window = result1;

2、在前面加上const


     
     
    
   
   
           
  1. const char* image_window = "Source Image";
  2. const char* result_window = "Result window";

3、右鍵project -> 屬性 -> C/C++ -> 語言 -> 符合模式:否

4、對變量進行強轉


     
     
    
   
   
           
  1. char* image_window =( char*) "Source Image";
  2. char* result_window = ( char*) "Result window";

 


免責聲明!

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



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