RISOLTO

di il
17 risposte

RISOLTO

Ho risolto tutto quanto grazie dell'aiuto

17 Risposte

  • Re: RISOLTO

    Stai copiando un puntatore, non una stringa! Devi utilizzare strcpy().
  • Re: RISOLTO

    Mi potresti gentilmente spiegare come funziona non la conosco
  • Re: RISOLTO

    C'è anche un esempio, questa funzione è una delle funzioni fondamentali della libreria C ... ma in quale libro stai studiando?
  • Re: RISOLTO

    Ehm non ho un libro di testo (so che devo procurarmene uno al più presto)comunque grazie ora ci provo
  • Re: RISOLTO

    
    void aggiungifiglio(FAMIGLIA*f,char a[20],int anni1,char sesso1){
        int xx=f->numerFigli;
        f->numerFigli=xx+1;
        strcpy(f->figli[xx]->nome,a);
        f->figli[xx]->anni=anni1;
        f->figli[xx]->sesso=sesso1;
    }
    
    è corretto utilizzarlo così ?
  • Re: RISOLTO

    Perchè non mi da errori di compilazioni ma quando richiamo il sottoprogramma l exe smette di funzionare
  • Re: RISOLTO

    Vedi risposta successiva ...
  • Re: RISOLTO

    È quello mostrato nel primo post .credo di aver capito perchè mi va in errore io aumento solo numer figli e non aumento la lunghezza dell'array però gli array non possono essere modificati quindi presumo di dover creare una nuova famiglia ?
  • Re: RISOLTO

    L'array dei figli è costituito da puntatori a struttura. Se hai a disposizione la struttura (come nei primi due casi), puoi usare il puntatore e assegnarlo.

    Ma nel caso della funzione, non hai ancora una struttura di cui assegnare il puntatore, devi creartela in base ai dati.

    Ovvero, prima della strcpy devi allocare lo spazio per la nuova struttura, quindi manca una

    f->figli[xx] = new PERSONA();
  • Re: RISOLTO

    Una cosa del genere non ha senso vero ?
    
    PERSONA * aggiungifiglio(FAMIGLIA*f,char a[20],int anni1,char sesso1){
       int x=f->numerFigli+1;
       f->figli[x-1]=f->figli[x];
       strcpy(f->figli[x]->nome,a);
    }
    
  • Re: RISOLTO

    Devo per forza copiarmi tutta la struttura f in una nuova struttura che aggiunga un figlio ?
  • Re: RISOLTO

    No che non ha senso ... Ti ho già detto cosa devi fare ... ripeto

    f->figli[xx] = new PERSONA();

    prima della strcpy
  • Re: RISOLTO

    Ovviamente se devi scrivere solamente in C devi usare la malloc e non la new
  • Re: RISOLTO

    Grazie mille ora ho capito sto avendo un po' di difficoltà nel capire le strutture unite ai puntatori
Devi accedere o registrarti per scrivere nel forum
17 risposte