As far as my C Wrapper functions are concerned...I no longer have the need for free(...). I do use PyMem_Free, for structures I allocated by using PyMem_New(...).
In my C code I do have things such as... char *foo(const char *in) { char *tmp; tmp = (char *) malloc((strlen(in) * sizeof(char)) + 1); strcpy(tmp, in); ... ... free(tmp); return someValue; } Is that appropriate? I was under the impression that when you malloc memory, you free it when done. I also have things like... char *bar(char *in) { char *results, *finalResults; results = (char *) malloc(...); finalResults = results; while (...) { *results++ = some_val; } return finalResults; } ...is that correct? As I mentioned earlier, when I run these functions from C I have no troubles...I can run them 5, 10, 15 times, etc. From Python, using my wrapper function is when I have trouble. Thanks in advance. Bernhard Herzog wrote: > "Java and Swing" <[EMAIL PROTECTED]> writes: > > > thanks for the tip, however even when I do not free aString or bString, > > i'm still crashing at the malloc in the c function, not the wrapper. > > Do you have any more places where you use free incorrectly? In my > experience, calling free with invalid values can corrupt the data > structures used by the memory allocator in such a way that subsequent > malloc calls crash. > > Bernhard > > -- > Intevation GmbH http://intevation.de/ > Skencil http://skencil.org/ > Thuban http://thuban.intevation.org/ -- http://mail.python.org/mailman/listinfo/python-list