text* txtinit(void) { HANDLE handle = CreateFile("H:\\dota.txt",GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);HANDLE hheap... 展开
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;} 运行后奇卡无比,看占用内存一直在变大,查了下程序只有可能是这段代码在炸,有加分 收起