Ik heb hieronder een funtie om een complete textfile in te lezen.. echter na een x aantal reallocs (stuk of 10) krijg ik een Heap error.
Als ik met kleinere delen bij realloc (en dus vaker) dan draaid hij langer. de fout treed op bij het overschrijden van grofweg 2k (en ja er zou heap zat moeten zijn)
Hoe kan ik de heap debuggen ? Waarschijnlijk zit er al eerder in mijn programma een heap overflow... Zijn er programma's die dat voor mij kunnen vinden ???
Als ik met kleinere delen bij realloc (en dus vaker) dan draaid hij langer. de fout treed op bij het overschrijden van grofweg 2k (en ja er zou heap zat moeten zijn)
Hoe kan ik de heap debuggen ? Waarschijnlijk zit er al eerder in mijn programma een heap overflow... Zijn er programma's die dat voor mij kunnen vinden ???
C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| int readfile(char ** out, char * in) { FILE * fp; char* pTemp; char* pTempTotaal; fp = fopen(in,"r"); pTemp = (char *)malloc(MAXDATALEN); pTempTotaal = (char *)malloc(MAXDATALEN); memset(pTempTotaal,0x00,MAXDATALEN); while(fgets(pTemp, MAXDATALEN, fp)) { /*Totaal naar Tussen*/ /*Nieuwe ruimte voor Totaal*/ printf("len:%u,res:%u",strlen(pTempTotaal),strlen(pTempTotaal)+strlen(pTemp)+MAXDATALEN); realloc(pTempTotaal,strlen(pTempTotaal)+strlen(pTemp)+MAXDATALEN); strncat(pTempTotaal, pTemp, MAXDATALEN); } return(0); } |
[ Voor 11% gewijzigd door xychix op 11-12-2003 09:05 ]
Every failure offers you a new opportunity! | Lokatie database|GoT - Notepad