これはしばらくの間私を悩ませてきました。この関数は戻りさえせず、単にセグメンテーション違反を起こします。正しいファイルの場所を指定し、関数内のすべての可能なポイントでエラーをチェックしますが、わかりませんか?
GLchar* getShaderString(const GLchar* file_path){
FILE* srcfile = NULL;
if(!(srcfile = fopen(file_path, "r")))
return(NULL);
fseek(srcfile, 0l, SEEK_END);
long len;
if((len = ftell(srcfile)) == -1)
return (NULL);
fseek(srcfile, 0l, SEEK_SET);
GLchar* buff;
if(!(buff = malloc(len + 1)))
return (NULL);
fread((GLvoid*)buff, len, 1, srcfile);
fclose(srcfile);
buff[len + 1] = '\0';
return (buff);
}