S
shilpi
Hi,
I am trying to allocate mroe memory if the following condition is true.
But I get Invalid pointer write memory error when running this code
through purifier.It is not freeing up oldlevels
Any help appreciated.
if(numLevels >= numAlloc) {
//printf("Allocate more memory\n");
char **oldLevels = levels;
long *oldOrder = order;
numAlloc *= 10;
levels = (char **) calloc(numAlloc, sizeof(char *));
order = (long *) calloc(numAlloc, sizeof(long));
for(i = 0; i < numLevels; i++) {
levels = oldLevels;
order = oldOrder;
}
free(oldLevels);
free(oldOrder);
}
I am trying to allocate mroe memory if the following condition is true.
But I get Invalid pointer write memory error when running this code
through purifier.It is not freeing up oldlevels
Any help appreciated.
if(numLevels >= numAlloc) {
//printf("Allocate more memory\n");
char **oldLevels = levels;
long *oldOrder = order;
numAlloc *= 10;
levels = (char **) calloc(numAlloc, sizeof(char *));
order = (long *) calloc(numAlloc, sizeof(long));
for(i = 0; i < numLevels; i++) {
levels = oldLevels;
order = oldOrder;
}
free(oldLevels);
free(oldOrder);
}