繁体   English   中英

从字符串常量到 'char*' [-Wwrite-strings] 的不推荐转换为错误

[英]getting error as deprecated conversion from string constant to 'char*' [-Wwrite-strings]

我收到错误,因为在initgraph() function从字符串常量到 'char*' [-Wwrite-strings]的不推荐转换

// C Implementation for drawing circle 
#include <graphics.h> 

//driver code 
int main() 
{ 
    int gd = DETECT, gm; 

    initgraph(&gd, &gm, ""); //here I'm getting an error of string

    circle(250, 200, 50); 

    getch(); 

    closegraph(); 

    return 0; 
} 

""是一个 c 风格的字符串文字,其类型为const char[1]并且可以隐式转换为const char* 自 C++11 以来,不允许隐式转换为char*

在 C 中,字符串文字属于char[]类型,并且可以直接分配给(非常量) char* C++03 也允许它(但不推荐使用它,因为文字在 C++ 中是const )。 C++11 不再允许在没有强制转换的情况下进行此类分配。

使用const char*制作initgraph是最好的。 否则,您必须使用const_cast执行显式转换; 但请注意,尝试修改字符串文字会导致未定义的行为。 如果initgraph可以,那么您不应该传递字符串文字。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM