我正在關注「粉碎堆棧以獲得樂趣和利潤」http://insecure.org/stf/smashstack.html。粉碎堆棧:爲什麼此代碼有效?
我想知道爲什麼我的代碼正在工作,雖然我寫了它來做出分段錯誤。
#include <stdio.h>
#include <string.h>
void function(char *str){
char buffer[16];
strcpy(buffer, str);
}
int main(void)
{
char large_string[256];
int i;
for(i = 0; i < 255; i++)
large_string[i];
function(large_string);
return 0;
}
for循環體中沒有東西丟失嗎?我認爲這是一種不完整的陳述。 – junix
bcoz即使在未定義行爲的情況下,分段錯誤也不確定:) – VoidPointer
@junix不完整,但沒有超出範圍 –