我正在使用来自SDL的一个函数,其中一个参数的类型是const GLchar* const*
,因此为了调用它,我需要传入一个C字符串的引用,如下所示:
const char *str = "test";
glShaderSource(... , &str, ...);
然而,我有一个std::string
需要传递进来,但是像这样做会出现错误:
std::string str = "test";
glShaderSource(... , &str.c_str(), ...);
我知道可以简单地创建一个const char*
变量并将std::string
保存到其中,如下所示:
const char *cstr = str.c_str();
但是有没有什么解决方法呢?我不喜欢创建一个新的变量。我尝试使用lambda表达式,但那样并不起作用。