• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Prata 4.9 ( Rozdział 4 zadanie 9 ) alokacja dynamiczna tablic struktury za pomocą new

Cloud VPS
0 głosów
442 wizyt
pytanie zadane 8 stycznia 2021 w C i C++ przez AizoOz Początkujący (490 p.)
edycja 8 stycznia 2021 przez AizoOz

Zadanie 4.9 

Wykonaj ponownie ćwiczenie 6, ale zamiast deklarować trzy struktury Batonik, zaalokuj tablicę dynamicznie za pomocą operatora new.  ( Treść 6 to Napisz program tworzący trzyelementową tablicę struktur Batonik, inicjalizujący ją wybranymi wartościami oraz wyświetlający zawartość wszystkich struktur ) 

 

Poniższy kod z zadania 6 mam przerobić na tablicę dynamiczną:

#include <iostream>

struct batonik
{
    std::string marka;
    float waga;
    int kcal;
};

int main() {
   
    batonik snack[3] =
    {
        { "Pierwszy", 0.5 , 200 },
        { "Drugi" , 0.7 , 50 },
        { "Trzeci" , 0.2 , 20 }
    };
    
    std::cout << "Dwa pierwsze batoniki to " << snack[0].marka << " i " << snack[1].marka << "\n";
    std::cout << "Ich laczna waga to " << snack[0].waga + snack[1].waga << "\n";
    
    
    
    std::cout << snack[0].marka << "\n";
    
    return 0;
}

Przerobiony :

#include <iostream>

struct Batonik
{
    std::string marka;
    float waga;
    int kcal;
};

int main() {
    
    Batonik  * pt = new Batonik[5];
    
    Batonik[5] =
    {
    { "pierwszy" , 0.1 , 10 },
    { "drugi" , 0.2 , 20 },
    { "trzeci" , 0.3 , 30 },
    { "czwarty" , 0.4 , 40 },
    { "piaty" , 0.5 , 50 }
    };
    return 0;
}

Domyślam się, że zamiast Batonik  * pt = new Batonik[5]; powinienem w jakiś sposób zainicjować strukturę snack jak to było w zadaniu szóstym . Tylko że nie mam pojęcia jak to zrobić.

Z kolei jeśli chodzi o Batonik  * pt = new Batonik[5]; , to nie wiem w jaki sposób zainicjować struktury wartościami .

1 odpowiedź

+1 głos
odpowiedź 8 stycznia 2021 przez Great Stary wyjadacz (12,660 p.)
wybrane 8 stycznia 2021 przez AizoOz
 
Najlepsza
#include <iostream>

struct Batonik
{
    std::string marka;
    float waga;
    int kcal;
};

int main() {
    // Sposób 1:
    Batonik* pt = new Batonik[5] {
        { "pierwszy" , 0.1f , 10 },
        { "drugi" , 0.2f , 20 },
        { "trzeci" , 0.3f , 30 },
        { "czwarty" , 0.4f , 40 },
        { "piaty" , 0.5f , 50 }
    };

    // Sposób 2:
    Batonik* pt2 = new Batonik[5];
    pt2[0] = Batonik{"pierwszy", 0.1f, 10};
}

Podobne pytania

0 głosów
4 odpowiedzi 1,234 wizyt
0 głosów
0 odpowiedzi 514 wizyt
pytanie zadane 2 lutego 2021 w C i C++ przez Karson Obywatel (1,000 p.)

93,469 zapytań

142,404 odpowiedzi

322,716 komentarzy

62,852 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...