I’m using MiniZip to unzip a file in an iPhone project. Everything works fine but i get a leak in instruments in the MiniZip code on this line :
unzip.c
line 493
s=(unz_s*)ALLOC(sizeof(unz_s));
*s=us;
unzGoToFirstFile((unzFile)s);
return (unzFile)s;
I understand that the var allocated with ALLOC is returned and not deallocated. In objective-C i would simply do an autorelease, but how can i achieve that in plain C ?
Thanks,
Vincent.
The caller of that method is responsible for
sand mustfree()it when it is no longer required to avoid the memory leak. This is the convention in C.You would have to tie in a 3rd-party GC library, perhaps something like Hans Boehm’s GC for C/C++. However, my suggestion would be to just free the memory when it is appropriate on your own. You’ll run into less hassles that way.