Velikost polev C++? – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Velikost polev C++? – C / C++ – Fórum – Programujte.comVelikost polev C++? – C / C++ – Fórum – Programujte.com

 

Dobrovský
~ Anonymní uživatel
3 příspěvky
22. 8. 2025   #1
-
0
-

 Mam konzolovou aplikaci pro Winodows viz níže.

Vlastně to nic nedělá, jen by to mělo vytvořit pole o velikosti 6M bytů a pak vypsat OK.

pokud je #define BLOCKSIZE 600000 jen 600k vše funguje, s #define BLOCKSIZE 6000000 se program přeloží (VS 2022), ale nevypiše se nic.

Otázka je kde udělali soudruzi chybu?
 

#define _CRT_SECURE_NO_DEPRECATE #define BLOCKSIZE 6000000

#include <iostream> #include <stdio.h> #include <stdlib.h> #include <windows.h>


int main() {

    unsigned char pa[BLOCKSIZE];     unsigned int offset = 0;          printf("OK\n");

}

Nahlásit jako SPAM
IP: 2a0d:bbc7::f816:3eff:fec7:9bc8...–
Dobrovský
~ Anonymní uživatel
3 příspěvky
22. 8. 2025   #2
-
0
-

#1 Dobrovský
Ono to asi souvisi s velikostí paměti pro zásobník ,ale to by snad na to mohl překldač min upozornit

Nahlásit jako SPAM
IP: 179.43.159.–
Berger
~ Anonymní uživatel
8 příspěvků
22. 8. 2025   #3
-
0
-

Ano souvisí to s omezením velikosti zásobníku, pokud indičtí programátoři Microsftu neprovedli nějaké radikální změny tak velikost zásobníku byla omezena na 1MB. Pokud potřebujete větší proměnné (pole) musí na haldu čili něco jako

unsigned char* array = new unsigned char [BLOCKSIZE];
array[1000] = 19;
delete array; 
Nahlásit jako SPAM
IP: 2a0b:f4c2:2::33...–
JerryM0
Věrný člen
23. 8. 2025   #4
-
0
-

normálně alokuješ 6MB na haldě. nicméně se zásobník v C++ dá zvětšit:

https://learn.microsoft.com/en-us/cpp/build/reference/f-set-stack-size?view=msvc-170

ty hele to se jako C++ učíš sám nebo ve škole ? 

Nahlásit jako SPAM
IP: 109.81.115.–
Dobrovský
~ Anonymní uživatel
3 příspěvky
23. 8. 2025   #5
-
0
-

Mě spíš zarazilo jak takový moloch jako je VS 2022 naprosto v pohodě a bez protestu přeložil a slinkoval něco co nefungovalo, Očekával bych nim warning, že byl překročen limit pro zásobník nebo tak něco. 

Nahlásit jako SPAM
IP: 2a0b:f4c0:16c:15::1...–
JerryM0
Věrný člen
23. 8. 2025   #6
-
0
-

#5 Dobrovský
chyba přetečení zásobníku bohužel spadá do kategorie run-time chyb a je to stejné i v C++/CLI, takže buď si chybu odchytíš ručně nebo změníš velikost zásobníku 

Nahlásit jako SPAM
IP: 109.81.115.–
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, 12 hostů

Podobná vlákna

Velikost souboru — založil Pavel

Velikost okna — založil Vasil

Velikost pisma v C — založil Atheo

Velikost souboru — založil TenglerDaniel

Moderátoři diskuze

 

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