Δημιουργία δισδιάστατου δυναμικού πίνακα

Συζητήσεις για την γλώσσα C και C++

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
hurry-o
Δημοσιεύσεις: 18
Εγγραφή: 19 Σεπ 2009 19:35

Δημιουργία δισδιάστατου δυναμικού πίνακα

Δημοσίευση από hurry-o » 20 Οκτ 2009 10:35

Καλησπέρα σε όλους πέπει να αναπτύξω μία κλάση της οποίας το interface ειναι

Κώδικας: Επιλογή όλων

class int2DimArray{
    int* store;
    int vSz,hSz;
public:
    int2DimArray(int vSize, int hSize);
    ~int2DimArray();
    void set(int vIdx,int hIdx,int value);
    int get(int vIdx,int hIdx);
    void resize(int vSize,int hSize);
    int getvSz();
    int gethSz();
};
Το πρόβλημα μου είναι οτι δεν μπορώ να υλοποιήσω την μέθοδο
int2DimArray(int vSize, int hSize);

Έχω κάνει το εξής μέχρι στιγμής

Κώδικας: Επιλογή όλων


int2DimArray::int2DimArray(int vSize,int hSize){
    vSize=getvSz();
    hSize=gethSz();
    store= new int[hSize*vSize];

Άβαταρ μέλους
bxenos
Δημοσιεύσεις: 53
Εγγραφή: 18 Αύγ 2008 19:56

Δημιουργία δισδιάστατου δυναμικού πίνακα

Δημοσίευση από bxenos » 20 Οκτ 2009 15:38

Κώδικας: Επιλογή όλων

int2DimArray::int2DimArray(int vSize,int hSize){
       vSz = vSize;
       hSz = hSize;
       store = new int [ vSz * hSz ];
}
φυσικά θα έπρεπε να επιλέξεις size_t αντί για int στους "δείκτες" horz,vert.
Θα πρέπει να ελέγξεις αν το store δεν είναι NULL και αν το vSz*hSz είναι μέσα στις δυνατότητες του size_t ή έχεις overflow και δεσμευση λάθος μνήμης.

Άβαταρ μέλους
bxenos
Δημοσιεύσεις: 53
Εγγραφή: 18 Αύγ 2008 19:56

Δημιουργία δισδιάστατου δυναμικού πίνακα

Δημοσίευση από bxenos » 20 Οκτ 2009 15:40

hurry-o έγραψε:Έχω κάνει το εξής μέχρι στιγμής

Κώδικας: Επιλογή όλων


int2DimArray::int2DimArray(int vSize,int hSize){
    vSize=getvSz(); [color=darkred][u]εδω διαγραφεις τα χρησιμα περιεχόμενα των vSize,hSize[/u][/color]
    hSize=gethSz();
    store= new int[hSize*vSize];
.................

Erevis
Δημοσιεύσεις: 56
Εγγραφή: 12 Ιουν 2008 16:31
Τοποθεσία: Χαλάνδρι

Δημιουργία δισδιάστατου δυναμικού πίνακα

Δημοσίευση από Erevis » 03 Νοέμ 2009 15:37

Κώδικας: Επιλογή όλων


int **array;

array = new int*[rows];

for&#40;int i = 0; i < rows; i++&#41;
&#123;
    array&#91;i&#93; = new int&#91;columns&#93;;
&#125;

Ελπίζω να σε βοηθήσει αυτό :)

Απάντηση

Επιστροφή στο “C, C++”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης