Xin chào mn, mình có đoạn code C++ sau
int main(){
char input[16];
int num = 64;
gets(input);
}
Mình đang học về lỗi tràn bộ đệm Stack buffer overflow. Theo như mình biết thì biến num sẽ chiếm 4 byte trên stack nhưng vì là 64 bit nên nó sẽ chiếm 8 byte, còn input sẽ chiếm 16 byte. Vậy nếu mình muốn ghi đè vào biến num thì mình cần ghi 16 byte để ghi hết input, nhưng lời giải đúng lại phải là ghi đè hết 24 byte, tức là input chiếm 24 byte rồi mới đến biến num chiếm 8 byte. Mình không hiểu cơ chế lắm ạ, mn có thể giúp mình giải đáp không ạ, mình cảm ơn