» »

Stack Overflow?!?

Stack Overflow?!?

mov ax 0x7c0 ::

Zdravo!

javi naslednje:


koda pa je naslednja:
Koda ki generira napako

Nimam pojma kaj je narobe! template sem ustvaril skoraj identično kot sem našel primer na MSDN!

Kaj bi lahko bilo narobe? Prosim pomagajte!

lp
  • zavarovalo slike: OwcA ()

Vesoljc ::

z debugom in brejkpointi najdi vrstico, pri kateri se zgodi omenenjena napaka. potem razmisli warum...
Abnormal behavior of abnormal brain makes me normal...

mov ax 0x7c0 ::

Našel sem vrstico:

::DialogBoxIndirectParam(hInstance, (LPCDLGTEMPLATE)hGlobal, hParent, (DLGPROC)RootDialogProc, (LPARAM)this);

Sam ni mi jasno zakaj Stack Overflow? hGlobal je velikosti 48 Kb, to nebi smelo biti preveč.
Res ne vem warum...

Vesoljc ::

(LPCDLGTEMPLATE)hGlobal?

LP je ponavadi pointer, kako je pointer lahko velik 48kb? ;)
Abnormal behavior of abnormal brain makes me normal...

mov ax 0x7c0 ::

Pointer res ne more biti velik 48 Kb. (LPCDLGTEMPLATE)hGlobal je kazalec na 48 Kb velik memory object. Katerega nafilam s podatki za template (ne uporabljam nobene zanke), tako da ziher ne prekoračim 48Kb.

če pa uporabim __try{...} __except(EXCEPTION_EXECUTE_HANDLER){...}
pa mi javi:
access violation (C0000005)

to zgoraj sem našel na MSDN .

Prosim če veš zakaj je temu tako mi pomagaj!

lp

Vesoljc ::

pravis, da si uporabil skoraj identicen primer kot na msdnju? tisti ti dela?
Abnormal behavior of abnormal brain makes me normal...

mov ax 0x7c0 ::

Ne, ne dela!!! Kodo z MSDN-ja sem skopiral, pa isto! DialogBoxIndirect javi Stack Overflow.

Gundolf ::

Stack overflow drugace ponavadi pomeni, da se ti program zazanka v rekurziji. Velikosti pointerjev oziroma velikosti podatkov na katere kazejo pointerji nima veze. Na stacku se znajdejo le parametri funkcij in pa lokalne spremenljivke. Pravis da nimas zanke, tako da sklepam da tudi rekurzije ne? Ce je tako preveri se lokalne spremenljivke.

Mogoce pa napaka ni v kodi ampak v kaksnem predolgem vhodnem nizu znakov.

Se najboljsi nasvet za na konec: nauci se debuggerja. On je v krizi lahko tvoj najboljsi prijatelj :)


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

JAVA Program brez rekurzije

Oddelek: Programiranje
61220 (1015) noraguta
»

c# kam lambda delegat shrani spremenljivke? (in njegov scope)

Oddelek: Programiranje
223045 (2603) Sportmania
»

[JAVA] rekurzivni izpis seznama z kazalci

Oddelek: Programiranje
151773 (1531) l0g1t3ch
»

[ OOP ] Global vs. Not Global

Oddelek: Programiranje
141238 (1033) noraguta
»

[C++] Buffer overflow sample code

Oddelek: Programiranje
71083 (983) CCfly

Več podobnih tem