Rozšírené hľadanie
Štvrtok 25. Apríl 2024 |
meniny má Marek
Re: Programovanie v jazyku C++: Pointer ako návratová hodnota funkcie

09.11.2019 14:05 Ta funkce ale nevytváří nový paměťový prostor pro uložení té proměnné. To byste tam musel mít něco jako: int * pint = new int; *pint = result; return pint; tj vytvořit si místo pro int, získat pointer na toto místo a na toto místo uložit výsledek vašeho výpočtu a tento pointer vrátit. Jinak vám to bude fungovat jen náhodou, protože platnost lokálních proměnných končí po ukončení bloku a kompilátor tam může umístit jiná data.

Re: Programovanie v jazyku C++: Pointer ako návratová hodnota funkcie

09.11.2019 14:05 I keď to som asi tiež domotal. :) Možno funkcia skutočne uchováva takto: premennaInt=*pointer1. Avšak vypísal som si adresy tej funkcie i jej hodnoty a pravdepodobne i s deštrukciou lokálnej premennej stále uchovava danú hodnotu, čiže asi kvôli uloženej hodnoty z pointeru do klasíckého int a potom je to už len o adrese funkcie a jej hodnote. Snáď je to tak ako som povedal, ale môžem sa i mýliť :)

Programovanie v jazyku C++: Pointer ako návratová hodnota funkcie

09.11.2019 14:05 Ok možno k tomu ešte niečo vysvetlím. Ak mi dáme ako return pointer1;, tak funkcia si do návratovej hodnoty skopiruje takto pointer2=pointer1 a nie štýlom pointer2=*pointer1, ako by sa mohlo zdať. Nový skopírovaný pointer je zviazaný s adresou funkcie a preto môžete ho odkazovať kdekoľvek, aj keď len raz :) pretože pri ďalšom volaní sa vykoná zasa kód a vznikne nový pointer a tak dookola :)

Re: Programovanie v jazyku C++: Pointer ako návratová hodnota funkcie

09.11.2019 14:05 Ja viem čo chceš povedať a áno súhlasím, že lokálna premenná zmizne a keby som ju chcel zavolať v main funkcii, tak dostanem od kompilátora svoje. Ale mi odkazujeme na funkciu a jej návratovú hodnotu a nie na jej lokálnu premennú! Takže logicky po každom volaní funkcie sa adresa funkcie s jej návratovou funkciou zmení. Treba si uvedomiť, že aj funkcia má svoju adresu a práve s ňou celý čas pracujeme. S adresami funkcii pracujeme napr.tu: https://www.linuxexpres.cz/software/programovanie-v-jazyku-c-pointery-ukazujuce-na-funkcie ;)

Re: Programovanie v jazyku C++: Pointer ako návratová hodnota funkcie

09.11.2019 14:05 Přesně tak. Navíc v odkazovaném článku deklarují tu vnitřní proměnnou jako static, což sice jednak umožňuje na ní vracet pointer, ale současně je potřeba dát si pozor na to, že tato proměnná je sdílená přes všechny běhy dané funkce. Tj pokud by funkce měla v každém volání generovat jiná data, tak není možné použít ani static proměnnou a je nutné pokaždé vytvořit nový objekt v paměti a na ten dát odkaz . https://www.tutorialspoint.com/cplusplus/cpp_return_pointer_from_functions.htm

Programovanie v jazyku C++: Pointer ako návratová hodnota funkcie

09.11.2019 14:05 Obávám se že je to cesta do pekel. Vracíš adresu lokální proměnné, která je po opuštění funkce neplatná. To že tam zůstane "správná" hodnota bezprostředně po zavolání funkce na věc nic nemění. Pokud si výslednou adesu uložíš a vypíšeš po několika dalších voláních, zjistíš že se hodnota na té adrese změnila. Viz příklad: int* funkce void test printf ; } a výstup je: 7 2 8 10 7 9 9 Takže z původní 7 je tam 9, tj. výsledek posledního volání.

Programovanie v jazyku C++: Pointer ako návratová hodnota funkcie

09.11.2019 00:03 Funkcie môžu vrátiť premenné typu int, float či string. Môžu však funkcie vrátiť pointer, čiže adresu na nejakú premennú? Odpoveď na túto otázku sa dozviete v článku.

Bližšie zoznámenie sa s editorom kódu Graviton

08.11.2019 17:35 Aké hodnotenie si odnesie odo mňa editor kódu Graviton? Okrem recenzie sa v článku dozviete i pár základných ukážok na prácu s týmto editorom kódu.

Manjaro 18.1 „Juhraya“ - prísľub budúcnosti

08.11.2019 17:35 Autori jednej z najpopulárnejších distribúcií dnešných dní nedávno zverejnili verziu 18.1. Jej meno – „Juhraya“ – síce asi poteší len fanúšikov Star Treku; za to jej obsah prinesie veľa zábavy ostatným linuxákom: skúseným i neskúseným. Čo teda priniesla nového?

Re: Jak chladit Raspberry Pi 4B

08.11.2019 03:30 A v cestine zde: https://www.coolipi.com/CS/Performance.html

QuAI – efektivní řešení pro vývoj aplikací umělé inteligence

07.11.2019 20:02 Aplikace a služby na bázi umělé inteligence jsou na trhu stále žádanější, a proto rychle roste i poptávka po výpočetních prostředích, která umožňují efektivně budovat, cvičit, optimalizovat a zavádět modely pro strojové učení. QNAP na tuto poptávku reaguje a nabízí výpočetní platformu s názvem QuAI založenou na výkonu a flexibilitě zařízení QNAP NAS. Díky QuAI se z NAS zařízení QNAP stává výkonný akcelerátor strojového učení.

Recenze knihy JavaScript – Programujeme profesionálně

06.11.2019 22:30 Odkud ta agentura je? a jak to přesněji funguje? dáte si požadavek přímo na místo, které chcete obsadit? a co dál?

Elementary OS: Podporuje aplikace Flatpak

06.11.2019 15:32 Flatpak je v repozitářích více distribucí. Kdyby jej nepodporovaly, nebyl by tam.

Registrujte se na konferenci Internet a Technologie 19

06.11.2019 15:32 Přehled o dění v klíčových projektech sdružení CZ.NIC a přednášky o dalších zajímavých IT tématech nabídne konference Internet a Technologie , kterou 14. a 15. 11. 2019 pořádá sdružení CZ.NIC.

Elementary OS: Podporuje aplikace Flatpak

06.11.2019 01:00 Nativní podpora balíčkovacího systému Flatpak je nyní k dispozici uživatelům distribuce Elementary OS založené na Ubuntu.