我在C程序的問題:調試 什麼是錯的過程中Ç調試問題,免費方法
char *str = (char *) malloc(20);
strcpy_s(str, 10, "abcdefghij");
//here I change one byte before str and one byte after
*((int*)str-1) = 10;
*((int*)(str+20)) = 10;
//and it stops on the..
free(str);
線?
覆蓋未分配內存的部分是該任務的一部分。我知道這通常是不正確的,但在這種情況下,這是任務的一部分。
正交你的問題,但[不投'malloc'在C]( http://c-faq.com/malloc/mallocnocast.html)。它可以隱藏錯誤。 – 2011-03-09 15:13:58
如果您在使用malloc()分配的緩衝區外寫入,那麼您希望發生什麼? – DavidK 2011-03-09 15:15:45