Comment on wrong6.c: You're testing an automatic variable, not a dynamic allocation. Memwatch, being absurdly portable, can only check dynamic allocations. It will catch that overwrite (but not read) if you allocate the memory dynamically. Regards, Johan Lindh