关于什么原因的任何线索?这是功能:
int readfile(char** s, const char* filename) {
struct stat st;
int i;
if(stat(filename, &st) == -1)
return 0;
*s = malloc(st.st_size+1);
for (i=0; i<st.st_size+1; i++)
*s[i] = 0;
FILE* f;
f = fopen(filename, "rb");
fread(*s, 1, st.st_size, f);
return 1;
}
这就是我所说的:
char* string;
if (!readfile(&string, "filename.ext"))
fprintf(stderr, "Problem reading file\n");
我很容易将fread读取的内容复制到readfile函数中声明的字符串中。
先感谢您。
最佳答案
这是一个运算符优先级错误:http://www.swansontec.com/sopc.html
我认为您正在尝试做的是:
for (i=0; i<st.st_size+1; i++)
(*s)[i] = 0;
关于c - 分配内存并写入(使用fread)字符串作为参数传递给返回SIGSEGV的函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33036770/