读书人

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

发布时间: 2012-05-21 18:04:41 作者: rapoo

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

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是无缓冲的

读书人网 >C语言

热点推荐