<html><head><title>Re: C++ havarující program</title>
<META http-equiv=Content-Type content="text/html; charset=utf-8">
</head>
<body>
<span style=" font-family:'Courier New'; font-size: 10pt;">Tak je to primárně aby se nemusel alokovat celý stack (co si pamatuju tak defaultně 0,5 MB), když běžná slušně napsaná aplikace využije max. desítky kB.<br>
Bohužel pro dealokaci už žádná automatická funkce nebyla/není, četl jsem kdysi článek jak to "vyřešit ručně".<br>
<br>
Ochrana statických proměnných je nejspíš jen příjemný bonus.<br>
<br>
Tomáš<br>
<br>
<br>
<br>
<span style=" color: #800000;"><b>> Teď budu určitě působit jako lunetic, že jsem to nevěděl.<br>
> Ale ta metoda, že se mezi zásobník a statické proměnné vloží protected<br>
> stránka, mi připadá jako hodně chytré řešení. Že pak sestupující <br>
> zásobník nemůže přepsat ta statická data (pokud jsem to teda správně <br>
> pochopil).<br>
> Takže díky za tuhle informaci.<br>
<br>
> PL<br>
<br>
> ***********************<br>
<br>
> Dne 9.8.2021 v 14:06 Tomáš Hamouz napsal(a):<br>
>> Re: C++ havarující program Sice pozdě, ale přece.<br>
>> Pokud se ve Win nic nezměnilo, tak se fyzicky při startu vlákna <br>
>> alokovaly pro zásobník jen dvě stránky, z toho první RW a druhá <br>
>> protected. V okamžiku jakéhokoliv přístupu k té protected stránce se <br>
>> vyvolala výjimka, ve které se buď přialokovala další stránka (tedy <br>
>> stávající se změnila na RW a přidala se nová, označená jako <br>
>> protected), nebo, při překročení limitu, se vygenerovala chyba.<br>
>> V uvedeném příkladu vlastní definice data[] nic nealokuje, jen posune <br>
>> SP. K přístupu dojde až v okamžiku kdy se vytváří stack frame při <br>
>> volání další funkce, tím je dané zpoždění mezi "přealokací" a <br>
>> vyvoláním chyby.<br>
<br>
>> Tomáš<br>
<br>
> _______________________________________________<br>
> HW-list mailing list  -  sponsored by </b></span></span><a style=" font-family:'courier new'; font-size: 10pt;" href="http://www.HW.cz">www.HW.cz</a><br>
<a style=" font-family:'courier new'; font-size: 10pt;" href="mailto:Hw-list@list.hw.cz">> Hw-list@list.hw.cz</a><br>
<a style=" font-family:'courier new'; font-size: 10pt;" href="http://list.hw.cz/mailman/listinfo/hw-list">> http://list.hw.cz/mailman/listinfo/hw-list</a></body></html>