To El Wray : Co ti na tom nejde? Pokud ten text nemusíš ukládat tak prostě vypíšeš jednu hvězdičku, necháš uživatele něco napsat a vypíšeš druhou. Nic jednoduššího už snad ani není.
Příspěvky odeslané z IP adresy 78.156.128.–
A co takhle dělat konzolovou aplikaci? Už sem si jednou takovouhle hloupost jednou udělal v pascalu. Není na tom nic těžkýho. Jen načítáš řetězce a porovnáváš je s řetězcem, kterej je příkaz. Akorát u nějakejch složitějších příkazů kde je syntaxe příkaz a parametr musíš mít nějaký parsování a následnou kontrolu jinak to je práce na hoďku když tam budeš mít hodně příkazů.
Určitě by ses měl podívat na přetěžování operátorů. Protože u třídy osoba musíš přetížit operátor přiřazení a ještě kopírovací konstruktor. Pak by možná bylo dobrý vyhodit výjimku místo těch chybovejch hlášení podtečení atd. Takhle ti to akorát napíše a vrátíš bůh ví co...
Pro uchování hrdinů bych použil nějaký kontejner. Třeba vector. No a pak ti akorát si stačí napsat pro třídu Parta metodu vloz nebo přidej je fuk jak si jí nazveš a nový hrdniny si tam postupně nasoukat.
system("nazev_programu");
Případně i cestu k tomu programu...
S čím máš teda konkrétně problém? Nevíš jak načíst heslo? Jak spustit ten program?
Můžeš zkusit Mistrovství C++. Celý to 100% nestihneš ale stačí když si tam najdeš třídy a věci kolem. Nebo C++ za 21 dní. Případně i nějaký materiály na netu. První dva sou kurzy ten třetí odkaz tam sou další odkazy.
[url]
http://web.archive.org/web/20050214190118/www.eternal.cz/index.php?nLevel=21
[/url]
[url]
http://www.builder.cz/serial24.html
[/url]
[url]
http://pepinator.tym.cz/tutorials/cpp/tutorial_cpp.php
[/url]
Nebo to zkus jak ti radil joudicek. To je nejspíš i lepší a hlavně pro začátečníka snáž napsatelný.
Trida vesmir bude tvoje rozhrani kde budes mit planety a bude se starat o veškerou režiji kolem cestování.
atributy: pole planet, neco (ukazatel, index pole) co bude rikat kde si
To joudicek : Tvůj příspěvek to pěkně popisuje a zkus se na to zaměřit a najít cestu jak to udělat. Z toho kódu je vidět, že objektově moc programovat neumíš. To neber prosím nijak zle... Já vím, že objektově programovat není hračka. Takhle rád bych ti to opravil ale háček je v tom, že bych ti to vlastně celý předělal, ty bys tomu nerozumněl a já bych ti to udělal prakticky celý, což nechci. Musíš se víc mrknout na třídy a ještě jednou si pak projdi ten můj kód. Případně se zeptej jestli některá věc není úplně jasná.
Takhle sem to myslel já:
Trida clovek: mela by zivoty, utok, jmeno
metody: ziskani poctu zivotu, ziskani jmena, zmenu zivotu...
z tridy clovek si pak vytvoris nepratele i hrdinu
Trida planeta: jmeno, seznam mist (pole trid Misto)
metody: ziskani jmena, vypis mist kam se dostanes...
Trida misto popisuje misto kde se nachazis:
atributy: nazev
metody: menu co tam muzes delat
Ty metody si nadefinujes tak jak si psal. Jediny, co mas spatne je navrh...
O veškerý cestování by se starala planeta. Třída Misto by mohla bejt buď třída od který by se dědily věci jako bar, hospoda, hotel nebo že by všechny místa měly stejný atributy takže by to bylo pro všechny společný.
Fungovat by to mohlo třeba takhle. Z nějakýho souboru si načtečteš všechny planety, tj. jména, jaký místa tam dou navštívit a případně nějaký další věci co si vymyslíš. Pak tomu předáš ukazatel na začátek pole těch planet jako sem to dal do toho For cyklu.
A když tam chceš narvat i hrdinu tak máš dvě možnosti:
1) dáš tam taky takhle adresu hrdiny do všech planet, není to moc praktický ale máš jednoduchej přístup
2) akorát při volání funkce předáš adresu hrdiny jako parametr fce. Takže máš k němu přístup a klidně tam hrdinů můžeš mít víc.
Mohl bys to udělat třeba tak že přicestuješ na planetu předáš funkci cesta toho hrdinu. Budeš se tam nějak motat, tj. zajdeš do baru, do hotelu, do dolu to je fuk. A když budeš chtít odejít tak akorát přes to menu planety vrátíš ukazatel na novou planetu. V hlavní funkci si ten ukazatel odchytneš a zavoláš tu samou fci jako předtím a předáš jí zase toho hrdinu. Snad sem to moct nezamotal... :-)))
Můžeš si třeba do každýho prvku pole uložit jednu cifru toho čísla.
Možná se to dá řešit jednodušejc ale mě napadl jen ten návrhovej vzor. Tady je Taková funkční ukázka nic moc tam definovanýho není jen tak aby to něco dělalo. Je tam takovej nástřel jak by to mohlo bejt samozřejmě data tam asi budeš cpát nějak jinak než takhle natvrdo ale jako ukázka to snad bude stačit.
#include <iostream>
#include <cstdlib>
using namespace std;
class Misto
{
private:
string nazev; //jmeno mista
public:
Misto(char *ret) : nazev(ret) { }
~Misto() { }
void VypisNazev() { cout << "Jmeno mista: " << nazev << endl; }
};
class Planeta
{
private:
Misto *mista; //dynamicke pole ktere bude uchovavat mista kam muzete jit na planete
Planeta *seznam; //zacatek pole planet
int MAX; //pocet planet
string nazev; //jmeno planety
public:
Planeta() : nazev() { mista = NULL; seznam = NULL; MAX = 0; }
~Planeta() { seznam = NULL; mista = NULL; }
void NastJmeno(char *ret) { nazev = ret; }
void NastPlanety(Planeta *p, int poc) { seznam = p; MAX = poc; }
void JmenoPlanety() { cout << "Jmeno planety: " << nazev << endl; }
void SeznamPlanet() {
for (int i = 0; i < MAX; i++) { //vypise vse krom aktualni planety
if ((seznam+i) != this)
seznam[i].JmenoPlanety();
}
}
};
int main()
{
const int MAX = 4;
Planeta planety[MAX];
planety[0].NastJmeno("Venuse"); //ulozeni jmen planet
planety[1].NastJmeno("Zeme");
planety[2].NastJmeno("Uran");
planety[3].NastJmeno("Neptun");
for (int i = 0; i < MAX; i++) {
planety[i].NastPlanety(planety, MAX); //nastavi ukazatel na zacatek pole vsem planetam
}
cout << "Seznam planet z menu hry:\n";
for (int i = 0; i < MAX; i++) {
planety[i].JmenoPlanety();
}
cout << "\n\nSeznam planet, na ktery se dostanete z prvni planety:\n";
planety[0].SeznamPlanet();
cout << "\n\n";
system("pause");
return 0;
}
Můžeš to udělat třeba tak že planeta bude třída a bude si uchovávat pole/spojový seznam míst kam můžeš jít a hlavně ukazatel na pole/začátek spojovýho seznamu planet. Z hlavního menu ti to vypíše seznam planet. A z každý planety se taky dostaneš na každou páč tam máš ten ukazatel. Je to návrhovej vzor jméno si nevzpomenu ale on mě když tak někdo doplní.
Tak já ti přeju hodně štěstí, protože si nemyslím, že se tu najde někdo, kdo za tebe bude dělat úkoly, protože si "zapomněl" nebo řekněme si na rovinu vykašlal se na to....
Code::Blocks má dvě varianty a to s kompilátorem a bez (samozřejmě ještě mutace na různé OS). Zkus to z týhle stránky.
http://www.codeblocks.org/downloads/26
Stáhnout tenhle soubor:
codeblocks-10.05mingw-setup.exe
Klikem na konec řádku na: BerliOS
Zkus dát spíš F9. ;-) Nebo se mrkni kde je v liště nahoře položka compile. Btw. můžeš se ti stát že ti to jen problikne. Tak tam pak před return dej cin.get().
To selkir : Samozřejmě, že se ti to stát může. Ale už ho mám několik let a sem s ním spokojenej. Plus je tu ta možnost zálohy a mimo jiný sem neříkal že musíš čistit celý registry ale že to dokáže. Na odstranění bordelu tohohle typu tam je jiný čištění. Ale jen sem ti ho nabídl klidně se poohledni jinde.
Stáhni si program CCleaner. Je Free a dokáže odstranit nepoužívané ikony, pročistit registry, odstranit smetí z kompu atd.
Jen doplním, že pokud to uděláš přes knihovnu stránek, tak se pak nelekni při importu když tam ty záložky nebudeš mít hned. Ono je to importuje většinou do nějaký podsložky. Takže je pak přetáhni do Lišty záložek a všechno bude jako dřív. :-)
Já můžu doporučit Code::Blocks. Má spoustu rozšíření, dá se tam použít i rozšíření pro Dev. Plus nedávno vyšla nová verze.
Vypadá to že je špatně nastavený tlačítko vypnout... Zkus pohledat ve vlastnostech. Když klikneš na plochu a dáš vlastnosti myslím že to je někde u spořičů a kdyby ne tak v ovládacích panelech a něco co se týká úspory energie nebo nastavení vypínání.
To IBTR : To vypadá, že ti někde chybí nebo přebejvá závorka ")". Zkus okolo toho řádku kde ti to chybu hlásí mrknout jestli sou všude všechny závorky, kde mají bejt.
Jestli je "pokuta" strukturní proměná mělo by fungovat tohle:
zaznamy[pocet]=(pokuta *)malloc(sizeof(pokuta));
Jestli není tak tohle:
zaznamy[pocet]=(struct pokuta *)malloc(sizeof(struct pokuta));
To mephi : Ale nebude. To sme měli na cvíku z prográmka taky. Je to celkem jednoduchá záležitost. Načteš si přesnost a pak tak dlouho připočítáváš v tylorově polynomu další členy dokud se nedostaneš k tý přesnosti.
To yaqwsx : Borderlands sem hrál. Výborná hra. Jen mě tam mrzí, že ty úkoly sou horzně stereotypní. Ale dohrát se to dá celkem dobře. Mulťák se mi bohužel nepodařilo zkusit protože má kámoš slabej komp. Ale jinak slušná zábava.
Můžeš to číslo například rovnou vydělit dvěma. Protože 1 a samo sebou je dělitelný vždycky. Pak stačí projet jen od půlky do do dvou.
Musíš celočíselné dělení. Tj. operátor /. Takhle by to vypadalo:
printf("1000x je %d\n",castka / 1000);
zbytek = castka % 1000;
printf("500x je %d\n",zbytek / 500);
zbytek %= 500;
printf("100x je %d\n",zbytek / 100);
zbytek %= 100;
printf("50x je %d\n",zbytek / 50 );
Je to tím že načteš znak enter zůstane ve frontě. Načte se při opakování cyklu (to je to jak ti přeskočí jedno načítání) a pak když se opakuje znova čeká na vložení znaku.
zkus to takhle
#include <stdio.h>
#include <stdlib.h>
int main()
{
char help;
do {
printf("Zadejte 0 pro konec: ");
scanf("%c",&help);
while (getchar() != '\n');
} while (help!='0');
return 0;
}
On v češtině je ale už několik let je ve windows pravidlem že příkazák a okna mají jiný kódování takže buď změnit kódování v programu (na fóru už to bylo několikrát) nebo se na diakritiku prostě vyprdni.
Ten výsledek dostaneš tak že si ho vypíšeš čili:
cout << "Vysledek je: " << integral << endl;
A výraz který si napsal znamená to že do proměnné h se přiřadí hodnota výrazu, double je před N proto, aby se použilo reálné dělení místo celočíselného.
Ne, že bych chtěl rejpat ale jak to de s vývojem? Sice je to výkřik do prázdna ale kdo ví...
Objekt cin na načítání bude asi nejlepší volba. Konec konců jeho metody používáš...
int cislo;
cin >> cislo;
To se dělá kontrolou chybových příznaků cin. Tj cin.fail() a cin.bad(). cin.fail() se nastaví při chybě hardwaru a cin.fail() při chybném čtení.
Aby se neinkludoval jeden soubor dvakrát, tak se používá tohle:
#ifndef JMENO_H_
#define JMENO_H_
zdrojový kód
#endif
Jmeno se obvykle dává název toho souboru, co se inkluduje ale je celkem fuk jak to nazveš.
Důležitý je že už je to vyřešený. Teď už teda jen postavíme ten stroj času nebo raketu a hurá na cesty. :-D
Úsečka mít zápornou velikost nemůže to je přece jasný. ALE nemůžeš vyjadřovat rychlost kladně když si za vztažnou soustavu zvolíš raketu. Tím bys současně řekl, že raketa se nehýbe. Čili tím znaménkem nevyjadřuješ její velikost ale směr... Ten záporný být může jak si sám řekl. Tudíž když to zjednoduším je "záporný vektor" ale ne jeho velikost o velikosti sem taky nemluvil. A jabka s hruškama proto že pleteš síly působící na Zem tam kde nejsou podstatný. Teda pokud bys to nevyjadřoval nějak zvláštně složitě. Potom bys mohl uvažovat kde co, třeba že na loď působý gravitační síla slunce, planet a dalších těles kolem kterých letí. Dál že na Zemi i loď dopadá nějaký sluneční vítr... Tudíž pokud si to chceš dostatečně zesložitit můžeš tam zamíchat takovejhle sil opravdu moře. Je to zjednodušená formulace naprosto celá záležitost nač tam tahat další věci...
Pokud vím tak vektor záporný být může a záleží na tom jak si tu vztažnou soustavu zvolíš takže můžeš být kladná i záporná. A u bodu dva už pleteš hrušky s jabkama. O tom že dilatace času by působila na Zemi po zvolení lodě za vztažnou soustavu nikdo nemluvil. A trošku víc si projdi jak to vypadá když změníme vztažnou soustavu. Jelikož je to opravdu velký rozdíl.
To Lordest : Částečně máš a částečně nemáš pravdu. Je důležitý co si zvolíš za vztažnou soustavu. Ty sis zvolil Zemi tudíž máš pravdu. Ale když si zvolím loď jako vztažnou soustavu. Bude se naopak země pohybovat zápornou rychlostí.
Posádka stárnout samozřejmě bude ale bude stárnout mnohem pomaleji (vzhledem k okolí).
To yaqwsx : To je pravda to by vedlo k tomu že by se to muselo nějaký způsobem kompenzovat to jak už by bylo těžší vymyslet. Proto je jednoduší vymyslet jak zakřivit prostor než se "řítit" touhle rychlostí vesmírem.
Ještě se vrátím k té krásné myšlence lodi co cestuje rychlostí "aspoň" světla (i když je to hloupost). Na lodi by sme nepozorovali vůbec žádnou změnu v běhu času plynul by stejně jako kdekoli jinde. ALE pokud by sme byli na lodi. Z pohledu pozorovatele by nám čas plynul rychleji než lidem na lodi. Proč? Protože jak poznamenal Garret Raziel rostla by hmotnost čímž by by došlo k dilataci času ("zpomalení toku času"). To jen tak na okraj.
Zásadní problém u této lodě je naprosto jiný. A to je i důvod proč touto cestou ne! Čím rychleji letíte tím přesněji musíte vědět kam a kudy letíte. Např. jedete autem 20 km/h a před sebou vidíte sloup není problém se mu vyhnout nebo zastavit ALE letíte-li rychlostí světla tak o tom že se vyhnete planetě která se náhle objevila kde být neměla nemůže být řeč a to že stihnete "zastavit" je představa ještě vtipnější z toho plyne je s vámi konec...
Manévrovat v téhle rychlosti by třeba i šlo ale než by jste změnili směr tak by ste uletěli ohromnou vzdálenost. Proto ano je to možnost ale opravdu to není možnost která bude někdy realizovaná.
To Lordest : To o čem mluvil tvůj učitel není to samé o čem sem psal já. Já psal o paralelních dimenzí o dimezích se kterými se "počítá" kvůli platnosti některých zákonů v teorii strun. Jelikož by jinak nešly všechny propojit ale díky těmto několika dimenzím navíc se jim to úspěšně daří. Já psal o paralelních dimenzích tedy pokud lépe řečeno tak jak to nazval SeraphCZ paralelních vesmírech.
To koudis : Tak popsat černou díru rovnice v téhle době opravdu neumíme. To je ještě poměrně daleko. Zatím ohledně černých děr máme spíš takovou teorii jak by to mohlo fungovat ale ani ta není úplně jistá. Takže vyber jiný vrchol fyziky. :-)
To Lordest : Já neřekl nic takovýho že neexistuje jen sem říkal že by pro to pochopení co a jak se děje bylo lepší studovat teoretiskou fyziku. Filozofovat můžeš o čem chceš ale pravdy se nejspíš nedobereš.
To s tím cestováním rychlejc než světlo sem radši nečetl měl bych z toho pak špatný sny. Když už cestovat na velký vzdálenosti tak takovýmhle způsobem se to opravdu dělat nebude.
To yaqwsx : Jj vím a v zásadě máš pravdu protože počet paralelních dimenzí se bere jako nekonečno (většinou).
Proto se taky většina vědců shodla, že minimálně do budoucnosti cestovat jde. JInak super seriál na téma paralelních dimenzí je Cesta do neznáma.
To survik1 : S tím "vícevláknovým" časovým prostorem bych byl opatrný. Ona to totiž není tak úplně pravda. Protože jedna teorie předpokládá nekonečno paralelních dimenzí, jiná, že neexistuje žádná. Ale právě cestou v čase by se taková dimenze vytvořila.
To yaqwsx : Víc než fylozofii bych ti doporučil teoretickou fyziku. Tam by ses o tom dozvěděl poměrně dost. Fylozofii určitě ne.
To SeraphCZ : Jen doplním že touhle změnou v čase by se dostal do jiné dimenze ve který by se to stalo.
Trošičku sem ti to upravil. Takhle by ti to mělo fungovat. Chyba byla v tom že si nedefinoval funkci setSales ve jmenném prostoru takže kompilátor pak nevěděl k čemu ta funkce patří.
#include "prvni.h"
using namespace SALES;
int main()
{
Sales s;
double ar[10] = { 1, 3, 2, 5, 4 };
int n = 3;
SALES::setSales(s, ar, n);
cin.get();
cin.get();
return 0;
}
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
namespace SALES
{
const int QUARTERS = 4;
struct Sales
{
double sales[QUARTERS];
double average;
double max;
double min;
};
void setSales(Sales & s, const double *ar, int n);
void setSales(Sales & s);
void showSales(const Sales & s);
}
#include "prvni.h"
using namespace SALES;
namespace SALES
{
void setSales(Sales & s, const double *ar, int n)
{
int x;
if (n < 4)
x = n;
else
x = 4;
for (int i = 0; i <x; i++)
s.sales[i] = ar[i];
for (int i = 0; i <x; i++)
s.average += s.sales[i];
s.average /= x;
double max=-32000;
for (int i = 0; i<x; i++)
{
if (s.sales[i] < s.sales[i+1])
max = s.sales[i+1];
}
double min;
for (int i = 0; i<x; i++)
{
if (s.sales[i] > s.sales[i+1])
min = s.sales[i+1];
}
s.max = max;
s.min = min;
}
}
Když máš ICQ a email tak se ho prostě zeptej. :-D
Taky skvělá hra z tohohle prostředí je Bridge It. Doporučuju, má to krásnou grafiku ale běží to jen na kartách nvidia.
Já bych to udělal, takhle prošel bych si ten řetězec od konce a postupně si ukládal písmena do jinýho stringu. Jakmile bych narazil na tečku mám celou příponu. Teď musím ten string otočit jelikož se mi ta přípona uložila obráceně. No a teď když jí mám obrácenou jí jen porovnám a hotovo.
Za sebe můžu doporučit Second Life. Mnozí z vás to určitě znají. Můžeš tam dělat cokoli, tedy třeba i kouzlit. A hlavně nemusíš tam plnit hloupý úkoly jen abys měl co dělat.
Jako první bych se ujistil, že máš staženou verzi s kompilátorem. Ale to nejspíš máš. Takže jako druhý bych zkusil mrknout do Build logu. Mám to nastavený na F4 nevím jestli to je i půvdodní nastavení. Jestli není tak menu View => Logs a dole v okně vybereš Build log a dáš znova zkompilovat. A měla by se ti ukázat nějaká chybová hláška.
Abys udělalo něco takového, tak bys musel znát kompilátor, kterým ten program byl kompilovanej a použít odpovídající dekompilátor. I to ale nezaručuje, že ten kód bude stejnej jako ten původní. Jinak můžeš tak maximálně použít dekompilátor, kterej to převede do symbolickejch instrukcí tj. assembleru. Ale to asi nechceš. Jinak můžeš zkusit google... Ten určitě vychrlí spoustu věcí okolo tohoto tématu.
To Anonymní uživatel : No nevím jestli to že má pascal string je nějakej argument... To bych mohl říct že v C si můžeš určit jaký má mít číslo výstupní formát např. hex, nebo oktálovej kdež to v pascalu si musíš na konverzi napsat funkci. Navíc se mi zdá hloupé rozdělení deklarace funkcí a procedur. V C to je řešeno elegantněji. Ale diskuze na téma C vs pascal tu už byla. viz.
[url]
http://programujte.com/index.php?akce=diskuze&kam=vlakno&tema=6435-c++-vs-pascal
[/url]
Tady je srovnání C a pascalu
[url]
http://silver.sucs.org/~manic/humour/languages/cpascal.htm
[/url]
[url]
http://users.iafrica.com/r/ra/rainier/cpas.htm
[/url]
[url]
http://www.experiencefestival.com/pascal_and_c_-_c_vs_pascal_a_language_comparison
[/url]
Vážně si nemyslím že by tahle diskuze vedla k nějakému závěru jen k jejímu zbytečnému prodlužování...
Jedním slovem..... Těžko
Co je na tom divnýho? Otevřeš si texťák a napíšeš do něj ty dva řádky. Pak to uložíš jako cokoli.bat a hotovo. Udělá to přesně to co chceš stačí to jen vyzkoušet. Akorát místo nazev_serveru dáš třeba seznam.cz, programujte.com, sosej.cz atd.
Stačí si napsat takovýto script:
ping nazev_serveru
pause
a uložit jako *.bat
To miska : Nebo můžeš zkusit spustit to VS se zpětnou kompatibilitou. Tj pravé tlačítko => vlastnosti => kompatibilita a tam už si vybereš.
To Ykita : Řekl bych, že se mu nezdá to, jak používáš direktivu #define. Tohle sem ještě nikde neviděl a řekl bych, že to ani nemůže být správně (pokud se pletu rád se poučím). Ani nechápu jaký by to mělo smysl...
No text sem sice vůbec nečetl. Ale moc bych tomu nevěřil. Zvlášť ten graf proudu a napětí se mi zdá jako nesmysl. Mimo to kdyby to bylo tak snadný vyrobit a ještě k tomu tak účiný, rozhodně by se ten návod nedal jen tak stáhnout a použít. Já bych to označil spíš za žert. Ale možná se šeredně pletu...
To cp.Hook : Jen doplním proč tam musí být && a ne ||. Je to proto, že cykly while a do pracují dokud platí podmínka. Když bys tam dal || (nebo) tak by to vnitřně fungovalo jako && (a zároveň) což by vedlo k chybě. Čekalo by to až se "objeví" EOF a ENTER zároveň což nemůže v tomto případě nastat.
To cp.Hook : Můžeš zkusit třeba tohle:
int main()
{
int z;
do {
z = getchar();
} while (z != EOF && z != '\n');
}
To ima : Ani v C/C++ to není nic těžkýho. Stačí si jen includovat knihovny time.h a stdlib.h pro C a v C++ ctime a cstdlib případně lze použít i knihovny C. Pak "zapneš" generování podobně jako v pascalu a už jen generuješ čísla.
Příklad:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
const int DOLNI = 10;
const int HORNI = 25;
int main(void)
{
int cislo;
srand(time(0)); //zapne generování
cislo = DOLNI + rand() % (HORNI - DOLNI + 1);
printf("Vygenerovane cislo: %d\n", cislo);
system("pause");
return 0;
}
Já ještě zapomněl dodat, že takhle to vrátí počet bajtů pro uložení ukazatele p.
Takhle už to vypíše počet bajtů pro uložení čísla int.
const int MAX = 3;
int *p = new int[MAX];
std::cout << "Velikost: " << sizeof(*p) * MAX;
To sexmachina : Stačí když napíšeš tohle:
std::cout << "Velikost: " << sizeof(p) * 3;
Ale bylo by lepší kdyby sis vytvořil konstantu, kterou bys to potom násobil. Třeba takhle:
const int MAX = 3;
int *p = new int[MAX];
std::cout << "Velikost: " << sizeof(p) * MAX;
To katka : To se mi taky stalo. Vyřešil to přechod na novější verzi klienta. V mém případě QIP.
To Taine : Koukl sem na to (nezkoušel sem to překládat) ale konstanta, kterou sis vytvořil v hlavičkovém souboru main.hpp nebude vidět dál než v tom souboru. A možná bych také být tebou uvažoval o tom, že v hlavním souboru (soubor s funkcí main) bude pouze tato funkce. Všechno ostatní bych přesunul do jiného souboru (ale to je jen rada).
Řešení té konstanty:
enum {NUMSTATES = 1}
To Zelenáč : To je pravda stačilo by to ale některé metody nevkládají na konec céčkovského řetězce \0 tudíž ho v podstatě neukončí. Tohle ten problém elegantně řeší čili máš potom míň starostí.