92906


### 質問内容

以下はシェーダーのコンパイルでソースコードの文字(不確定な文字数)が来るのですがその型は`std::shared_ptr<std::vector<GLchar>>`なのですがこれを組み込み型配列GLchar
t[] のような形で動作させる方法はあるのでしょうか？提示の正解例のように一度変数をかますことになるのですが一行で書く方法が知りたいです。

### 知りたいこと

std::vector型変数を組み込み型配列GLchar t[] のように動作させる方法が知りたい

### 試したこと

提示コードのコメント部のようにいろいろ実験

### 参考サイト

<http://vivi.dyndns.org/tech/cpp/vector.html>

[code]

        //std::shared_ptr<std::vector<GLchar>> vertexFile; 型です
        //
        GLchar* v = vertexFile->data();
        //glShaderSource(vertexShader,1,&v,NULL);//成功例
    
        //glShaderSource(vertexShader,1,&(*(GLchar*)vertexFile->data()),NULL);
        glShaderSource(vertexShader,1,&vertexFile->data(),NULL);
    
    
[/code]


CC BY-SA 4.0
2022-12-19T12:41:47.230
92900
2022-12-19T20:30:43.840
55177
question
c++
std::vector<GLchar>を組み込み配列GLcharとして動作させる方法が知りたい


`glShaderSource()`の第3引数には、「`GLchar` の配列の配列」が必要です。`std::vector<GLchar>`
が提供できるのは 「`GLchar` の配列」なので、どうしても一度変数に入れる必要があります。  
つまり、質問文のコードよりシンプルにすることはできません。


CC BY-SA 4.0
2022-12-19T20:30:43.840
92906
2022-12-19T20:30:43.840
3475
92900
answer