// hack1.cpp : Defines the entry point for the console application. // #include #include #include const size_t buffer_size = 16; char* buffer_data = "AAAABBBBCCCCDDDDEEEEFFFFGGGG"; void print_mem(void* mem, int len, int bytes_in_line = 8); void stack_func(char* data); void heap_func(char* data); int main(int argc, char* argv[]) { stack_func(buffer_data); // 28 + 1 heap_func(buffer_data); // 28 + 1 return 0; } void stack_func(char* data) { char buffer[buffer_size]; memset(buffer,0,buffer_size); strcpy(buffer,data); print_mem(buffer,2*buffer_size); } void heap_func(char* data) { char* buffer = (char*) malloc(buffer_size); memset(buffer,0,buffer_size); strcpy(buffer,data); print_mem(buffer,2*buffer_size); free(buffer); } void print_mem(void* mem, int len, int bytes_in_line) { for(int i = 0; i < len; i++) { if(i % bytes_in_line == 0) { printf("\n"); } printf("0x%02X",((unsigned char*)mem)[i]); if(i < len-1) { printf(" "); } } printf("\n"); }