Diskuze: Pomoc(Pokročilé operácie s pamätou)
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 2 zpráv z 2.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Kód:
int** pole = new int*[vyska];
ti alokuje pole ukazatelů na int s počtem prvků rovných hodnotě proměnné vyska, tzn. ne, neukazuje na tu proměnnou. Do hranatých závorek udáváš rozměr, ne parametr konstruktoru.
Kód
pole[i] = new int[sirka];
alokuje pole intů délky odpovídající hodnotě proměnné sirka, tzn. ne, neukazuje to na tu proměnnou. Adresa počátku alokovaného pole je přiřazena do i-té položky pole pole (což je pole ukazatelů (polí) na inty).
V cyklu to musíš inicializovat proto, že pole je pole ukazatelů na inty, tzn. pole[i] je ukazatel na int, který musíš před řádným použitím nasměrovat na paměť, která ti patří (a tu si opatříš tak, že ji alokuješ, třeba přes new[]).
Pojmy "pole" a "ukazatel" můžeš volně zaměňovat, protože pole je v C/C++ vlastně ukazatel na jeho první prvek... a o tom, že má i další prvky (za tím prvním) víš v zásadě jen ty (až na výjimky).
Zobrazeno 2 zpráv z 2.