operator new do alokacji nowej struktury

0

Witam. Uczę się programowania, a dokładniej języka c++ z książki Stephena Praty i mam problem, a więc jestem przy wskaźnikach i mam za zadanie, napisać program który prosi o nazwę, średnicę i wagę pizzy. Ma stworzyć do tego strukturę, ale przy użyciu operatora new. Napisałem coś, nawet działa, ale nie wiem czy to o to chodziło. Jest tam też problem z wyświetlaniem nazwy, gdyż wyskakuje tylko pierwsza litera, ale myślę, że to samemu uda mi się ogarnąć. Zamieszczam kod i powiedzcie czy o to chodziło.

#include<iostream>

struct Pizza
{
char nazwa[20];
int srednica;
int waga;
};

int main ()
{
using namespace std;

Pizza * ps = new Pizza;

cout << "Podaj srednice pizzy\n";
cin >> ps->srednica;
cin.get();
cout <<"Podaj nazwe pizzy\n";
cin.get(ps->nazwa, 20);
cout <<"Podaj wage pizzy\n";
cin >> ps-> waga;

cout <<"Nazwa pizzy: " << *ps->nazwa;

return 0;
}
1

cout <<"Nazwa pizzy: " << ps->nazwa; - bez gwiazdki.

0

Ale w programie o to chodziło? Dobrze zrozumiałem?

1

brakuje delete.

1

Czyli w całości ma to wyglądać tak? Jeżeli tak to dzięki wielkie za pomoc :)

#include<iostream>

struct Pizza
{
char nazwa[20];
int srednica;
int waga;
};

int main ()
{
using namespace std;

Pizza * ps = new Pizza;

cout << "Podaj srednice pizzy\n";
cin >> ps->srednica;
cin.get();
cout <<"Podaj nazwe pizzy\n";
cin.get(ps->nazwa, 20);
cout <<"Podaj wage pizzy\n";
cin >> ps-> waga;

cout <<"Nazwa pizzy: " << ps->nazwa <<endl;
cout <<"Srednica pizzy: " << ps->srednica << endl;
cout <<"Waga pizzy: " << ps->waga <<endl;

delete ps;

return 0;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1