Esercizio array, puntatori e strutture

di il
5 risposte

Esercizio array, puntatori e strutture

Salve a tutti, vi posto un programma che ho scritto (l'esercizio e il 9 del capitolo 4 per chi avesse c++ prime plus di Prata). In pratica voglio creare una struttura di nome CandyBar e creare un puntatore a un array di 3 CandyBar usando new; il programma poi mi mostra alcuni contenuti, nulla di particolare...solo non riesco proprio a capre dove sbaglio perchè ogni volta che provo a lanciarlo mi da errore. Ve lo mostro:

#include <iostream>
struct CandyBar {
char brand[20];
double weight;
int calories;
};
int main ()
{
using namespace std;
CandyBar *p = new CandyBar[3];
p[0] = {"ciao", 20.1, 3};
p[1] = {"come", 20.3, 4};
p[2] = {"va", 20.15, 5};

cout << "*p[0]= "
<< p[0]->brand << endl
<< p[0]->weight << endl
<< p[0]->calories << endl
<< "*p[1]= "
<< p[1]->brand << endl;
delete []p;
return 0;
}

che dite, è ora che mi dia all'ippica e lasci perdere il c++?

5 Risposte

  • Re: Esercizio array, puntatori e strutture

    Si decisamente. Già che ci 6 cambia i -> con i . p è un vettore di struct non un vettore di puntatori a struct.
  • Re: Esercizio array, puntatori e strutture

    Lo so che è meglio la notazione col punto e infatti era quella che avevo messo all'inizio ma poi visto che non andava ho cambiato per vedere se succedeva qualcosa ma niente. Ma a parte questo non sai dirmi cosa cambiare? secondo me ho sbagliato o quando uso new o quando definisco gli elementi dell'array, ma sono più propenso verso il secondo, tu che dici? E' che non saprei come correggere
  • Re: Esercizio array, puntatori e strutture

    Ah e lascia perdere il modo in cui è scritto, è che facendo copia-incolla me l'ha modificato, grazie comunque del consiglio!
  • Re: Esercizio array, puntatori e strutture

    Io una soluzione l'ho trovata ma non so se ti piace:
    
    CandyBar *p = new CandyBar[3];
    strcpy(p[0].brand,"ciao");
    p[0].weight = 20.1;
    p[0].calories = 3;
    
    e così via col resto. Non credo che si possando inizializzare le strutture allocate dinamicamente in quel modo.
  • Re: Esercizio array, puntatori e strutture

    Ah ho capito, grazie mille, non ci avevo pensato. Sì anche a me sapeva strano quel metodo che avevo usato, inserire un elemento volta per volta mi sembra un'ottima idea! (all'ippica mi darò appena avrò fatto l'esme di programmazzione all'università, promesso ) adesso provo a mettere
    #include <cstring> e usare strcpy, comunque credo proprio che funzionerà
Devi accedere o registrarti per scrivere nel forum
5 risposte