bart_simpson Δημοσ. 7 Δεκεμβρίου 2007 Δημοσ. 7 Δεκεμβρίου 2007 γεια σας παιδια, θα ηθελα να ρωτησω πως γινεται στην c++ ο χρηστης να οριζει το μεγεθος ενος πινακα. πχ να φτιαξω στο προγραμμα εναν πινακα int array[] και οταν τρεχει να παταει ο χρηστης 10 και να γινεται ο πινακας 10 θεσεων.
Directx Δημοσ. 7 Δεκεμβρίου 2007 Δημοσ. 7 Δεκεμβρίου 2007 Η δέσμευση ενός πίνακα Ν-1 στοιχείων στην C++ μπορεί να γίνει πολύ εύκολα με την χρήση της ρουτίνας δέσμευσης μνήμης new στην οποία καθορίζουμε τον τύπο και το μέγεθος των δεδομένων που ζητάμε να δεσμεύσουμε δυναμικά από το σύστημα. Η εισαγωγή του μεγέθους του πίνακα μας, γίνεται με την χρήση της cin η οποία αν δεν μπορέσει να μετατρέψει την είσοδο μας στον επιθυμητό τύπο (στην περίπτωση μας int) επιστρέφει false (δηλαδή 0). Για επίδειξη, γεμίζουμε την δεσμευμένη array με αριθμούς (αντίστροφη μέτρηση). Τέλος, κατά την έξοδο του προγράμματος διαγράφουμε τον πίνακα με την C++ εντολή delete[] (προσοχή όχι σκέτη delete) η οποία διαγράφει arrays. Η ανάπτυξη & δοκιμή του προγράμματος έγινε σε CodeGear/Borland C/C++ Builder 6.0 > //-Simple array allocation in C++ directx------------------------------------ #include <vector> #include <iostream> #include <sstream> #include <string> #ifdef __BORLANDC__ #pragma hdrstop #endif //--------------------------------------------------------------------------- using namespace std; #ifdef __BORLANDC__ #pragma argsused #endif int main(int argc, char* argv[]) { // Program variables ... int *ptrArray = 0, nArraySize; // Request array size ... cout << "Please enter the array size:"; if(!(cin>>nArraySize)) // Is valid numeric? cout << "Invalid array size - \""<<nArraySize<<"\""; else // Yes it is! { // Allocate array ptrArray = new int[nArraySize]; // Cleanup array memset(ptrArray,0,sizeof(int)*nArraySize); // Let's fill the array with some data !! for(nArraySize>0;nArraySize-- { ptrArray[nArraySize] = nArraySize; cout << "ptrArray["<<nArraySize<<"]" << "=" << ptrArray[nArraySize]+1 << endl; } } // End of program, clean-up local resources delete[] ptrArray; } //--------------------------------------------------------------------------- Υ.Γ. Η C++ STL προσφέρει μια θαυμάσια class για την δυναμική διαχείριση πινάκων, στην περίπτωση μας πρόκειται για την vector<int>.
bart_simpson Δημοσ. 7 Δεκεμβρίου 2007 Μέλος Δημοσ. 7 Δεκεμβρίου 2007 φιλε μου σε ευχαριστω πολυ που ασχοληθηκες. πολυ ωραιο ποστ.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.