0

アプリケーションが 0x3 を返し、クラッシュします。fstream がファイルを開けない可能性があることがわかりました。どこにあるべきですか?つまり、application.exe と同じフォルダか、それとも別のフォルダですか? Code::Blocks を使用しています

編集

Code::Blocks は cb ランナーで作業ディレクトリを設定しています

GLuint sh;
int meret;
char * s;
std::ifstream fa1 ("vertex.vert",std::ios_base::binary);

fa1.seekg(0, fa1.end);
meret = fa1.tellg();
fa1.seekg(0, fa1.beg);
fa1.read(s,meret);
fa1.close();
//sh = glCreateShader(st);
const char * s1[1] = {s};
std::cout << s;
4

1 に答える 1

0

あなたの問題はこの行だと思います:

fa1.read(s,meret);

array にスペースを割り当てていないため、配列sに書き込もうとすると問題が発生します。

s = new char[ meret ];

readファイルが大きすぎない限り、問題が解決する可能性がある直前に... 注意: オブジェクトを手動で閉じる必要はありません。ifstreamオブジェクトが範囲外になると閉じます。

于 2013-08-14T12:26:01.923 に答える