房天下 > 房天下问答 > 业主生活 > 其他
  • 大神帮忙看看为什么这段代码炸掉了我的内存

    text* txtinit(void) { HANDLE handle = CreateFile("H:\\dota.txt",GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); HANDLE hheap = HeapCreate(NULL,0,0); char *p;DWORD size;DWORD s; size = GetFileSize(handle,NULL); p = (char *)HeapAlloc(hheap,NULL,size); DWORD i = 0; for(i=0;i<size&&p[i]!=EOF;i++) ReadFile(handle,p+i,1,&s,NULL); HANDLE textheap = HeapCreate(NULL,0,0); HANDLE charheap = HeapCreate(NULL,0,0); text *head = (text *)HeapAlloc(textheap,HEAP_ZERO_MEMORY,sizeof(text)); DWORD j=0,cc=0; text *temp = (text *)HeapAlloc(textheap,HEAP_ZERO_MEMORY,sizeof(text)); head->next = temp; for(i=0;p[i]!=EOF;i++) {for(;p[i]==''\n''&&p[i+1]!=''\n'';) {temp->data = (char*)HeapAlloc(charheap,HEAP_ZERO_MEMORY,i-j+1); for(DWORD c=0;c<(i-j);c++) {cc = j; temp->data[c] = p[cc+1]; cc++;} temp->data[cc+1] = ''\0''; text *tail = (text *)HeapAlloc(textheap,HEAP_ZERO_MEMORY,sizeof(text)); temp->next = tail; tail->prev = temp; temp = tail;} } temp->next = head; head->prev = temp; HeapFree(hheap,NULL,p); HeapDestroy(hheap); return head; } 运行后奇卡无比,看占用内存一直在变大,查了下程序只有可能是这段代码在炸,有加分

    提问者:大胖子小房子

    发布于2011-10-19

共1个回答
  • 业主小胖子 丨Lv 5
    完全不懂
    +1 2011-10-19 举报
热门人气推荐
免责声明:问答内容均来源于互联网用户,房天下对其内容不负责任,如有版权或其他问题可以联系房天下进行删除。