Visual Studio 2010 velikost – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Visual Studio 2010 velikost – C / C++ – Fórum – Programujte.comVisual Studio 2010 velikost – C / C++ – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
Doomista+1
Stálý člen
25. 2. 2014   #1
-
0
-

Ahoj,

Visual Studio 2010 mi dělá zajímavou chybu. Pokud udělám i takto jednoduchý program:
 

#include <iostream>

using namespace std;

const long SIZE=1000000;

int main(){
long arr[SIZE]={0};
	for(long i=0; i<SIZE; i++){
	cin >> arr[i];
	}
return 0;
}

Tak to sice zkompiluje v pořádku, ale při spuštění mi to vyhodí stack overflow. Debugger ukazuje na chkstk.asm na test dword ptr [eax],eax ; probe page.
Experimentálně jsem zjistil, že maximální hodnota SIZE pro kterou je program ještě stabilní je 64668.
Nevím si s tím rady, setkali jste se s tímhle někdy?
Díky za odpovědi

Nahlásit jako SPAM
IP: 90.176.176.–
Na vše stačí iostream...
Matěj
~ Anonymní uživatel
25 příspěvků
26. 2. 2014   #2
-
0
-

#1 Doomista
Stack (Zásobník) není nafukovací :)

Pole se uloží na zásobník a ten má určitou maximální velikost.

Nahlásit jako SPAM
IP: 2001:718:1c01:260:9ccf:1d...–
Řešení
Radek Chalupa
~ Redaktor
+1
Super člen
26. 2. 2014   #3
-
0
-
Vyřešeno Nejlepší odpověď

#2 Matěj
Přesně tak, tuším že defaultní velikost zásobníku je 1MB, což při poli long určitě přešvihne. Lze to v nastavení změnit, ale rozhodně lepší použít dynamickou alokaci, tj malloc, new, HeapAlloc.

Radek Chalupa 
- vývoj software na zakázku 
- školení programování (C/C++, WinAPI, ATL, COM, ActiveX, C#, NET Framework, MFC) 
http://www.radekchalupa.cz

Nahlásit jako SPAM
IP: 89.177.51.–
Doomista+1
Stálý člen
26. 2. 2014   #4
-
0
-

Fajn, s dynamickou pamětí už to funguje, díky. Narazil jsem na to při řešení olympiádní úlohy a nenapadlo mě alokovat to dynamicky

Nahlásit jako SPAM
IP: 86.49.91.–
Na vše stačí iostream...
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 101 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý