ne_viens
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору GCC умеет на стеке динамически выделять, оказывается: Код: mov eax, [rbp+n] ; <<<<<<<<<<<<<<< N input cdqe sub rax, 1 mov [rbp+var_40], rax mov rdx, rax add rdx, 1 mov r14, rdx mov r15d, 0 mov rdx, rax add rdx, 1 mov r12, rdx mov r13d, 0 add rax, 1 shl rax, 2 lea rdx, [rax+3] mov eax, 10h sub rax, 1 add rax, rdx mov ecx, 10h mov edx, 0 div rcx imul rax, 10h sub rsp, rax ; <<<<<<<<<<<<<alloc on stack dynamically mov rax, rsp add rax, 3 shr rax, 2 shl rax, 2 mov [rbp+var_48_array_a_pointer], rax | С одной стороны это хорошо- это гораздо быстрее malloc(), с другой- плохо, так как самому надо следить за размером стека, размером массивов и портабельностью на другие компиляторы, которые этой фишки не поддерживают. |