Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    129

    [c++] matrice di ogetti

    ciao a tutti

    devo allocare dinamicamente una matrice di ogetti della classe kakuro

    mi chiedevo se cosi è allocata in modo giusto



    codice HTML:
    cout<<"Inserire numero di righe:";
    int row; cin>>row;
    cout<<"Inserire numero di colonne:";
    int col; cin>>col;
    
    
     Kakuro **Celle;
    
    //alloco la matrice dinamicamente
    Celle= new Kakuro*[row];
    for(int i=0;i<row;i++)
    Celle[i] = new Kakuro[col];
    perchè durante l'esecuzione del programma all'improvviso crasha il programma,
    e non riesco a trovare l'errore allora ho pensato che forse ho sbagliato ad allocare ?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Quote Originariamente inviata da namelessg Visualizza il messaggio
    perchè durante l'esecuzione del programma all'improvviso crasha il programma,
    e non riesco a trovare l'errore allora ho pensato che forse ho sbagliato ad allocare ?
    In quale altra parte del codice hai l'errore ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    129
    No non lo so di preciso XK la compilazione va a buon fine
    E in fase di esecuzione che crasha il programma

    Allora perciò mi chiedevo se l allocazione in questo modo è giusta?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Sì ... mostra il resto e si vede ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    129
    bene il mistero si infittisce

    Allora siccome il codice è molto lungo pubblicherò solo le cose piu importanti

    sto implementando il gioco enigmistico kakuro in c++


    Ho 3 matrici

    string tabella, che mi rappresenta la griglia di gioco
    Kakuro Celle, che mi serve per analizzare la griglia di gioco
    Kakuro temp, una matrice temporanea


    il problema nasce perchè devo fare in modo che l'input sia preso da tastiera mentre invece prima era implementato in modo statico, cosi ho fatto queste modifiche al codice ma crasha.


    PRIMA DELLE MODIFICHE


    avevo dei define che stabilivano la grandezza della matrice
    codice:
    #define ROW 8
    #define COL 8
    in questa classe dichiaravo la matrice Celle
    codice:
    class Tabella{
      private:
        Kakuro Celle[ROW][COL];
      
    .............

    Nel main avevo dichiarato la matrice string tabella in modo statico

    codice:
        string tabella[ROW][COL]={{"N","23-","30-","N","N","27-","12-","16-"}, ///8x8
                              {"-16"," "," ","N","17-24"," "," "," "},
                              {"-17",...................
    in questo metodo la matrice temp
    codice:
    bool Tabella:: backtracking(int i, int j){
      vector<int> val;
      Kakuro temp[ROW][COL];
    e il programma funzionava e restituiva la soluzione

    MODIFICHE SUCCESSIVE PER PRENDERE LA GRIGLIA DA TASTIERA

    dichiaro la matrice Celle in modo dinamico

    codice:
    class Tabella{
      private:
    
        int row;
        int col;
        Kakuro **Celle;
    ..............



    Alloco nel main la matrice tabella
    codice:
    string **tabella;
    
    cout<<"Inserire numero di righe:";
    int row; cin>>row;
    cout<<"Inserire numero di colonne:";
    int col; cin>>col;
    
    
    //alloco la matrice dinamicamente
    tabella= new string*[row];
    for(int i=0;i<row;i++)
    tabella[i] = new string[col];
    
    //leggo da tastiera i valori della matrice
    for(int i=0;i<row;i++)
    for(int j=0;j<col;j++)
    {
    cout<<"KAKURO[ "<<i+1<<","<<j+1<<" ] = ";
    cin>>tabella [i][j];
    }// fine leggi mat
    poi sempre nel main

    passo al costruttore row e col
    codice:
     Tabella Tab(row,col);

    e il costruttore di Tabella costruisce Celle
    codice:
    Tabella::Tabella(int r,int c){
    
    row=r;
    col=c;
    
    //alloco la matrice dinamicamente
    Celle= new Kakuro*[row];
    for(int i=0;i<row;i++)
    Celle[i] = new Kakuro[col];


    e la matrice temp in questo metodo l'ho lasciata statica

    codice:
    bool Tabella:: backtracking(int i, int j){
      vector<int> val;
    Kakuro temp[row][col];
    Ultima modifica di namelessg; 01-11-2014 a 17:32

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    129
    l'input lo prende
    dopo aver caricato la matrice tabella crasha il programma

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    129
    no ma il il problema non è questo
    perchè ora mettendo delle cout ho capito che il programma

    si blocca in questo metodo
    codice:
    void Tabella:: set_definizioni(){
    
      int i,j;
      int n_celle=0,jj=0;
        for(i=0;i<row;i++){       //scorro la tabella per righe
          for(j=0;j<col;j++){
            jj=j;                   //salvo la posizione
            while(Celle[i][j].compare(BIANCA)==true and j<col){//quando trovo una cella bianca continuo a contare finchè
              n_celle++;//c'è non finiscono
              j++;
            }
            if(n_celle!=0)//se ne ho trovate
              Celle[i][jj-1].set_right_celle(n_celle);//salvo il totale nella casella definizione
              n_celle=0;//e azzero il contatore
          }
        }
        n_celle=0;
        int ii=0;
        for(j=0;j<col;j++){//scorro la tabella per colonne
          for(i=0;i<row;i++){
            ii=i;                   //salvo la posizione
            while((Celle[i][j].compare(BIANCA)==true) and (i<row)){//appena trovo una cella bianca
              n_celle++;//conto finchè non finiscono
              i++;
            }
            if(n_celle!=0)//se ne ho trovate
              Celle[ii-1][j].set_down_celle(n_celle);//stampo il totale nella casella definizione
              n_celle=0;
          }
        }
        +
    }

    forse non riesce a fare piu i confronti con la matrice presa da input

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.