内存出错!
下面是我下的一个程序; 从文件中截取字符串;文件内容:01 2721923 01 07338218731 13:20:11 13:21:51 1996/09/04 000100 0004 0003
从文件中读取第4位到第10位的字符, 即“2721923”。
但是在VC6.0上运行,前面的都没错, 执行时出错了, 出现内存错误,
请大家帮我看下;
谢谢;
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<sys\stat.h>
void main()
{
FILE *fp;
char *m, *n, *p;
struct stat buf;
stat("e:\\11\\44.txt", &buf);
p = malloc(sizeof(p));
m = malloc(buf.st_size);
while((fp = fopen("e:\\11\\44.txt","rt")) == NULL)
{
printf("can't find the file\n");
}
fread(m, buf.st_size, 1, fp);
n = m + 3;
strncpy(p, n, 7);
*(p + 10) = '\0';
printf("%s\n", p);
fclose(fp);
free(p);
free(m);
}