Ahojte, pracuji ve skole s inline assemblerem (C++) a nechapu, kde mam chybu. Koukal jsem se po netu, do skript a hledal jsem dal a bud neco stale prehlizim, nebo bych to mel mit dobre. Toto je muj kod
#include <stdlib.h>
void blah()
{
_asm {
mov ecx, 4 // pocet prvku, na ktere chci alokovat misto (4 ukazatele)
inc ecx // pridam jeden prvek, (pro NULL)
shl ecx, 2 // jelikoz jsou prvky ukazatele, tak nasobim ctyrma
push ecx // na zasobnik si dam parametr funkce malloc
call malloc // zavolam malloc
add esp, 4 // stahnu parametr funkce
// nyni bych tedy mel mit v eax alokovanou pamet na 20bajtu
}
}
void main()
{
blah();
}
To je ale problem, protoze mi to shodi aplikaci. Kdyz to projizdim debuggerem, tak vse probiha dobre, ale volani funkce malloc mi vyhodi neodchycenou vyjimku, presne vyhodi hlasku:Cim to je? DekujiUnhandled exception at 0x004182c0 in app.exe: 0xC0000005: Access violation writing location 0x7ffe2486.