最近在把SDL封装起来 好为以后写代码轻松些.
出现了这个错误.英文翻译大概是:不可以把字符串常量变成char*指针.
char *title= "test";
SDLWindow* window = new SDLWindow(title,400,500,400,500,SDL_WINDOW_SHOWN);
修改后:
char title[] = "test";
SDLWindow* window = new SDLWindow(title,400,500,400,500,SDL_WINDOW_SHOWN);
就可以运行了.
stackoverflow大牛回答:
If a function takes a char const *
, it guarantees that it only reads whatever data the pointer points to. However, if it takes a non-const pointer, like char *
, it might write to it.
As it is not legal to write to a string literal, the compiler will issue a warning.
The best solution is to change the function to accept char const *
rather than char *
.
最好的方法是修改函数参数 把char * 改成 char const * . 我还晕着...
http://stackoverflow.com/questions/7415326/deprecated-conversion-from-string-constant-to-char-error