![](/img/trans.png)
[英]deprecated conversion from string constant to ‘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.