【发布时间】:2015-10-09 11:09:35
【问题描述】:
关于是什么原因的任何线索?这是函数:
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 函数中声明的字符串。
提前谢谢你。
【问题讨论】:
-
memset (*s, 0, st.st_size+1);而不是 for() 循环可以避免这种情况
标签: c string arguments malloc fread