首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

一个内存访问违法的程序,求来看看

2012-05-21 
一个内存访问违法的程序,求高手进来看看程序是这样的C/C++ code#includestdio.h#includestdlib.h#incl

一个内存访问违法的程序,求高手进来看看
程序是这样的

C/C++ code
#include<stdio.h>#include<stdlib.h>#include<string.h>int main(){        char c, *cpBuffer;        int i;        FILE * fileptr;        if((fileptr=fopen("G:\\1.txt","r+"))==0)        {               printf("file open failed!!");               getchar();               return 0;                                       }        for(i=0; i<fileptr->_bufsiz; ++i) if(*(fileptr->_base+i) == 0x0A) break;        cpBuffer = (char*)malloc(i*sizeof(char)+1);        fileptr->_cnt+=i;        memcpy(cpBuffer, fileptr->_base, i?i:1);        *(cpBuffer+i) = '\0';        printf("%s\n",cpBuffer);        system("pause");        return 0;}

这个程序我本来是想从文件中读一行字符,然后输出,但运行后却提示内存访问违法,问题出在memcpy那个函数那里,但我不知道哪里错了以及怎么改正,请各位大神帮忙看看,谢谢

[解决办法]
会不会是因为stdin是带缓冲区的,而fileptr是无缓冲的

热点排行