Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [C++] inizializzazione matrice

    Buonasera a tutti,
    non riesco a capire perché non posso inizializzare la matrice A in questo modo,

    codice:
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
    
    float **A;
    
    A= new float*[7];
        for(int i=0; i<7; i++)
        {
            A[i] = new float[7];
        }
        
    A= {
            {0,1,0,0,0,0,0}, //riga1
            {7,0,7,0,0,0,7},//riga2
            {0,0,0,1,0,0,0},//riga3
            {7,0,7,0,7,0,7},//riga4
            {0,0,0,0,0,1,0},//riga5
            {0,0,7,0,7,0,7},//riga6
            {0,0,0,0,0,0,0}//riga7
        };
        
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    quando provo a compilare il codice, l'Ide mi dà un messaggio di errore sulla riga
    codice:
    A= {
    qualcuno può aiutarmi?
    Ultima modifica di napoleone89; 15-03-2014 a 21:56

  2. #2
    Ciao, quel tipo di inizializzazione è idonea per le matrici allocate staticamente.
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  3. #3
    e per inizializzare con quei valori una matrice allocata dinamicamente come devo fare?

  4. #4
    Una cosa di questo tipo

    codice:
    int main(int argc, char *argv[])
    {
        const size_x = 7;
        const size_y = 7;
        
        float **A = new float*[size_y];
        
        // Alloca tutti i dati in maniera *sequenziale*
        float *matrice = new float[size_y*size_x];
        
        // Assegna i doppi puntatori ad ogni 'riga'
        for(int i=0; i<size_y; i++)
            A[i] = &matrice[i*size_y];
        
        // Matrice temporanea, solo per l'assegnazione dei valori
        float data[size_y][size_x] = 
        {  
            {0.,1.,0.,0.,0.,0.,0.} //riga1
          , {7.,0.,7.,0.,0.,0.,7.} //riga2
          , {0.,0.,0.,1.,0.,0.,0.} //riga3
          , {7.,0.,7.,0.,7.,0.,7.} //riga4
          , {0.,0.,0.,0.,0.,1.,0.} //riga5
          , {0.,0.,7.,0.,7.,0.,7.} //riga6
          , {0.,0.,0.,0.,0.,0.,0.} //riga7
        };
        
        for( int i=0; i<size_y*size_x; i++)
            matrice[i] = data[0][i];
    
        for(int y=0; y<size_y; y++)
        {
            for(int x=0; x<size_x; x++)
                cout<<"A["<<y<<"]["<<x<<"]="<<A[y][x]<<", ";
            cout<<"\n";
        }
        
        cout<<"\nTerminato.";
        cin.get();
        return EXIT_SUCCESS;
    }
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  5. #5
    Grazie e scusa per il ritardo! =)

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.