返回信息流想请问下malloc函数有没有限制长度的作用?
代码如下,char *txt = (char *)malloc(sizeof(char) * 1);只分配了1个char的空间给txt,相当于是char txt[1];对吧
可是我去读取有12个字符的文本文件,这12个字符依然能够全部读到txt中,难道不会造成
溢出么?
另外还想问下,用fscanf和fread从文本文件读字符串后,是不是在字符数组的最后一个元素自动加了一个'\0'?
请教大牛~~~
int main()
{
FILE *fp;
fp = fopen("1.txt","r");
char *txt = (char *)malloc(sizeof(char) * 1);
fscanf(fp,"%s",txt);
printf("%s",txt);
fclose(fp);
return 0;
}
这是一条镜像帖。来源:北邮人论坛 / cpp / #34267同步于 2009/12/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
请教关于malloc的问题
MDifferent
2009/12/26镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
首先要澄清的是
fread 读的是bytes fscanf读的是字符串和bytes
虽然这并不会导致什么大不同
fread 是读取num*size个bytes到buffer里 一般用来存取数据结构
fscanf是按照你给的format string来读取内容