Vytvaranie globalnych premennych vovnutri funkcie – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Vytvaranie globalnych premennych vovnutri funkcie – C / C++ – Fórum – Programujte.comVytvaranie globalnych premennych vovnutri funkcie – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
entity0
Newbie
23. 10. 2009   #1
-
0
-

Potreboval by som spravit globalne pole o n prvkoch zvnutra nejakej funcie. Da sa to vobec?

Nahlásit jako SPAM
IP: 85.135.226.–
"long long long is too long" - MinGW
Reklama
Reklama
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
23. 10. 2009   #2
-
0
-

Nechapem presne ako ty myslis - kde mas to pole deklarovane ? Vnutry tej funkcie alebo vonku ?
Ak vonku tak to moze kludne inicializovat z vnutra funkcie.
Ak vo vnutri funkcie tak to nie je globalne :) Mozes ale spravit funkciu, v ktorej to nadeklarujes ako static a ta nebude robit nic ine len vracat pointer na zaciatok toho pola.

Nahlásit jako SPAM
IP: 78.128.199.–
ondra.holub
~ Anonymní uživatel
253 příspěvků
23. 10. 2009   #3
-
0
-

1. možnost: Musíš ho mít nadeklarované venku jako globální a v té funkci ho jenom nainicializuješ.
2. možnost: Vytvoříš ho dynamicky přes new/malloc a vrátíš jako návratovou hodnotu nebo přes parametr
3. Možnost: Uděláš ho uvnitř funkce jako static a vrátíš ukazatel na něj. Takové pole je vlastně globální (zůstane stejné i po opuštění funkce), akorát není z venku funkce vidět. Ale pokud ta funkce vrátí nějaký ukazatel na takovou proměnnou, může si s tím každý dělat co chce i z venku.

Nahlásit jako SPAM
IP: 194.138.12.–
entity0
Newbie
23. 10. 2009   #4
-
0
-

No potrebujem ho deklarovat vo vnutri funkcie, kedze pocet prvkov sa meni.
Takze ak by som to chcel tym 3. sposobom tak by to malo ist asi takto

*bool make2darray(x,y){

static bool array[x][y];
return &array;
}


?

Nahlásit jako SPAM
IP: 85.135.226.–
"long long long is too long" - MinGW
KIIV+42
God of flame
23. 10. 2009   #5
-
0
-

To entity : tak todle ti neprojde

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
entity0
Newbie
23. 10. 2009   #6
-
0
-

Tak mozno by pomohlo keby si napisal ako by to malo spravny byt :)

Nahlásit jako SPAM
IP: 85.135.226.–
"long long long is too long" - MinGW
yaqwsx+9
Posthunter
23. 10. 2009   #7
-
0
-

A co takhle globální ukazatel na pole a ukazatel na délku pole? A potom ve funci jenom inicializovat? Myslím, že je to nejjednodušší.

Nahlásit jako SPAM
IP: 85.160.112.–
Life is too short to remove USB mass storage safely...
Správný drsňák udělá z konzole cokoliv
KIIV+42
God of flame
23. 10. 2009   #8
-
0
-

na to neni jedno reseni.. bud to alokujes jako jednorozmerne pole o velikosti x*y a pak podle toho budes pristupovat k prvkum
tj pole[y*pozice_druhy_rozmer + pozice_prvni_rozmer]
nebo se zamotat v poli ukazatelu .. akorat by slo pouzit pole[pozice_druhy_rozmer][pozice_prvni_rozmer]
jen alokace je trosicku slozitejsi.. musis nejdriv pripravi ten druhy rozmer a pak pro kazdou polozku jeste alokovat i pamet pro ten prvni rozmer

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
entity0
Newbie
25. 10. 2009   #9
-
0
-

ok, uz to mam, vdaka

Nahlásit jako SPAM
IP: 85.135.130.–
"long long long is too long" - MinGW
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, 102 hostů

Podobná vlákna

Odosielanie premenných — založil Pali

Čítanie premenných z .txt — založil lukas.balaz

[C99] Velkosť premenných — založil Tango

Zmatok v premennych(zaciatocnik) — založil antiatlet

Moderátoři diskuze

 

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