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

    Correttezza del codice

    ciao a tutti...volevo un consiglio sperando di non violare in nessun modo il regolamento...
    Questo codice per l' allocazione di una matrice dinamica è corretto??
    grazie...


    codice:
    #include <cstdlib>
    #include <iostream>
    using namespace std;
    typedef char T;
    void inserisci_matrice (T* & , const int ,const int );
    
    int main(int argc, char *argv[])
    {    int n,m;
         T * Pmat;
         cout << "\n inserisci gli indici dell Array"<< "\n numero di righe:";
         cin >> n; cout << "\n numero di colonne:"; cin >> m;
         Pmat = new T [n*m];
         inserisci_matrice (Pmat,n,m);
         for (int i=0;i<n;i++){
             for (int j=0;j<m;j++){
             cout <<"\n elemento"<<i<<","<<j;
             cout<< Pmat [i*m+j];
             }
         }
    system("PAUSE");
    return EXIT_SUCCESS;
    }
    void inserisci_matrice (T* &MatP , const int n,const int m){
       cout <<"\n inserisci gli elementi della matrice:"; 
       for (int i=0;i<n;i++){
           for (int j=0;j<m;j++){
           cout <<"\n elemento"<<i<<","<<j;
           cin >> MatP [i*m+j];
           }
       }
    }
    P.S. Per la stampa del vettore potrebbe essere fatta un altra funzione...ma dovrebbe essere lo stesso...

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326

    Moderazione

    Per il futuro:

    1) Indica il linguaggio utilizzato nel titolo (obbligatorio)
    2) Posta il codice all'interno degli appositi tag [code] e [/code] così da mantenerlo indentato e leggibile
    3) Cerca di rendere più preciso il titolo delle discussioni.

    Ho corretto tutto io.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    L'allocazione va bene. E' la deallocazione che lascia a desiderare.
    P.S. Che utilità ha quel typedef char T?
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  4. #4
    il typedef char T serve nel caso in cui si voglia cambiare il tipo di array...invece di un array di caratteri farne uno di interi, reali...ecc...in questo modo non devi modificare in ogni sottoprogramma...
    comunque...per la deallocazione come potrei migliorarlo??
    grazie

  5. #5
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Piu che altro dovresti inserirla. Prima del system("PAUSE"); metti delete[] Pmat.

    Per il typedef. Non per scoraggiarti ma messo così non serve a granché.
    Non si può ridefinire un typedef, quindi appena scriverai:
    typedef int T sotto a typedef char T, con l'idea di riutilizzare il codice, otterrai solo un errore di compilazione.

    Quel che vuoi fare si ottiene con i template, ma non sapendo quanto li conosci preferisco evitare approfondimenti prematuri.
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  6. #6
    Ma lo scopo non è di mettere un nuovo typedef con lo stesso nome...
    Se ad esempio devo fare un altro programma dove serve la stessa funzione di inserimento vettore dove però il vettore non sia di caratteri ma di interi mi basta cancellare char e mettere int...in questo modo non andrò a modificare char in tutte le funzioni...
    torna utile se le funzioni sono parecchie basta fare copia e incolla ed il gioco è fatto...
    comunque grazie per il consiglio...

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.