LINUX.ORG.RU

Вопрос про стек


0

0

Непосредственно перед вызовом( точнее во время оного)snprintf смотрим стек: нижние адреса памяти...верхние адреса памяти <-- [$ebp] [$esp] [адрес buffer[]] [размер buffer[]] [aдрес argv[1][]] [содержимое tmp[]] [содержимое buf[]] Верхушка стека...основание стека Так все должно быть по теории, а на практике( у меня) между [aдрес argv[1][]] и [содержимое tmp[]] сидит еще 4*4 байт. Интересно, что там такое, как скомпилить, чтобы этого не было и, вроде бы, все :) Заранее благодарен. P.S. Система Mandrake 7.1, компилирую gcc 2.95.2-7mdk, cмотрю gdb-4.18-14mdk


Какое такое tmp[]? Вы бы сформулировали по человечески вопрос.
А вообще - ключик -S для gcc еще никто не отменял.

vodz ★★★★★
()
Ответ на: комментарий от vodz

Уупс :)) Вот так: #include <stdio.h> int main(int argc, char **argv) { char buffer[10]; char tmp[20]; snprintf(buffer, sizeof buffer, argv[1]); }

s0mbre
() автор топика

2s0mbre: а дебажить пробовал ? может быть там регистры камня сохраняются ? типа push epb...

hoopoe ★★
()

Interesno... A mozcet tam peremeniye sredi, ved' main() prinemaet 3 parametra. Prover'.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.