Hola a todos,
Tengo el siguiente código:
1. char *pcCadena = NULL;
2. LlamarDLL(pcCadena);
3. Cuando se llama a [ LLamarDLL(...) ], dentro de esta función DLL se
reserva [ X ] cantidad de memoria para la variable [ pcCadena ];
4. Después de llamar a la función DLL grabo el contenido de [ pcCadena ] en
un archivo y el archivo queda bien.
5. Ahora necesito liberar la memoria reservada por [ FuncionDLL ] para [
pcCadena ].
Problema:
1. No puedo liberar la memoria ocupada (bastantica) por [ pcCadena ], ni con
(delete [ ] pcCadena), ni con (free(pcCadena)), pues me sale un error, tanto
en Debug como en Release.
2. En debug, sale este error:
File: dbgheap.c
Line: 1044
Expression: _CrtIsValidHeapPointer (pUserData)
3. Es necesario eliminar la memoria explícitamente?, será posible que esta
memoria sea liberada por la DLL cuando ésta se descargue?.
Les agradezco cualquier aporte o aclaración al respecto.
Entorno: Visual C++ 6.0 sobre Windows XP Prof.
Nota: La "aplicación" que llama a esta DLL es otra DLL de tipo ATL.
Leer las respuestas