У меня есть следующий код:
glShaderSource(shader, 1, (const char **)data.c_str(), NULL);
Но это приводит к сбою моей программы. Как преобразовать std :: string
в const char **
?
Я также пробовал (const char **) &
, но там говорилось, что «требуется l-значение», чего я не понимаю. Он отлично работает, когда я использую этот код:
const char *data = "some code";
glShaderSource(shader, 1, &data, NULL);
Но я не могу заставить его работать напрямую из std :: string
. Я мог бы выделить для него новый массив char
, но это плохой код.
Я также пробовал с const GLchar
, но, очевидно, это не имеет никакого значения.