c - “分段错误(核心转储)”是什么意思,为什么会发生?
问题描述
我正在尝试实现一种将着色器导入为 glsl 文件的方法,但我得到bash: line 1: 71365 Segmentation fault (core dumped)
了退出代码139
这是我的代码的删减版:
char* s_readShaderFile(FILE* fp){
fseek(fp, 0L, SEEK_END);
int len = ftell(fp);
char line[256];
printf("aaaaa\n");
char* sh = alloca(len * sizeof(char));
while(!feof(fp)){
fgets(line, 255, fp);
strcat(line, "\n");
strcat(line, sh);
}
return sh;
}
int main (){
FILE* f_sh_vertex = fopen("Shaders/frag.glsl", "r");
char* sh_vertex = s_readShaderFile(f_sh_vertex);
fclose(f_sh_vertex);
FILE* f_sh_fragment = fopen("Shaders/frag.glsl", "r");
char* sh_fragment = s_readShaderFile(f_sh_fragment);
fclose(f_sh_fragment);
return 0;
}
解决方案
推荐阅读
- macos - 浏览器未识别主机条目
- php - 困难的 PHP 嵌套正则表达式
- android - 使用 Navigation 架构组件时如何与其他 Fragment 交互?
- javascript - 从派生类访问属性
- java - Java 声音 API。从混音器获取支持的音频格式
- c++ - VS2017 链接器问题:LNK1181 无法打开输入文件“glew32s.lib\\glew32s.lib\\glew32s.lib\\”
- hadoop - 如何跟踪 hadoop ALS 的进度?
- android - java.lang.RuntimeException:正在停止已停止的活动:
- excel - Excel VBA 引用是在工作簿还是客户端计算机中进行的?
- flutter - Scoped Model、BLoC 模式、StreamBuilder 和 Inherited Widget(或 Model)我应该选择哪一个,为什么?