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