#define len 10
int *pm = malloc(len +1);
memset(pm,0,len+1);
snprintf(pm,len,\"test data₩n\");
assert(pm[len]==0);
free(pm);
pm=0;

코드를 처음 짤때 대략 이런 패턴으로 작성하면 나중에 메모리 덮어써서 뺑이치는 일은 확실히 줄어드는 것 같다.