Crash funzione di una rubrica

di il
3 risposte

Crash funzione di una rubrica

Ho il seguente codice di un progetto in Qt con GUI di una rubrica :

void MainWindow::on_AddButton_clicked()
{
Contatto nuovo;


QString nome = ui->nomelineEdit->text();
QString cognome = ui->cognomelineEdit->text();
QString telefono = ui->telefonolineEdit->text();
QString email = ui->emaillineEdit->text();


nuovo.nome = nome.toStdString();
nuovo.cognome = cognome.toStdString();
nuovo.telefono = telefono.toStdString();
nuovo.email = email.toStdString();


ui->comboBox->addItem(nome + "," + cognome + "," + telefono + "," + email);
rubrica->aggiungi(nuovo.nome,nuovo.cognome,nuovo.telefono,nuovo.email);

ui->nomelineEdit->clear();
ui->cognomelineEdit->clear();
ui->telefonolineEdit->clear();
ui->emaillineEdit->clear();
rubrica->scriviSuFile();
}

Questo codice dovrebbe essere in grado di inserire in una rubrica (array) un contatto (struttura con 4 campi string) ma se provo a cliccare sul pulsante Add il programma crasha.
Questo programma lo ho già realizzato in Visual Studio e funziona,lo ho solamente riadattato per Qt ma con i pochi accorgimenti che ho corretto non funziona,mi sono perso qualcosa?

3 Risposte

  • Re: Crash funzione di una rubrica

    Effettuando il debug passo-passo vengo rimandato all'if della funzione aggiungi :

    void Rubrica_suMemoria::aggiungi(std::string nome, std::string cognome, std::string telefono, std::string email)
    {
    for (int i = 0; i <MAX; i++)
    {
    if (contatti.cognome.compare("")==0) //QUI
    {
    contatti.nome = nome;
    contatti.cognome = cognome;
    contatti.telefono = telefono;
    contatti.email = email;
    break;
    }
    }
    }
  • Re: Crash funzione di una rubrica

    Cosa è contatti[]? Dove è definito nel codice?
  • Re: Crash funzione di una rubrica

    Contatti è il vettore in che uso per contenere tutti i contatti.Lo ho definito nella classe Rubrica_suMemoria.h :

    class Rubrica_suMemoria : public RubricaMaster
    {

    private:

    Contatto contatti[MAX]; /*!< Viene inizializzato un vettore di tipo Contatto di MAX contatti*/


    public:

    Rubrica_suMemoria(); /*!< Costruttore */

    ~Rubrica_suMemoria(); /*!< Distruttore */



    /*!< Prototipi dei metodi*/
    void aggiungi(std::string nome, std::string cognome, std::string telefono, std::string email);
    int ricercaCognome(std::string);
    void elimina(std::string);
    void modifica(std::string, std::string,std::string,std::string);
    void CancellaRubrica();
    int getSize();
    std::string stampaRubrica();
    };
Devi accedere o registrarti per scrivere nel forum
3 risposte