一个内存访问违法的程序,求高手进来看看
程序是这样的
- 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是无缓冲的