Προς το περιεχόμενο

μικρη βοηθεια σε c++


bart_simpson

Προτεινόμενες αναρτήσεις

Δημοσ.

γεια σας παιδια, θα ηθελα να ρωτησω πως γινεται στην c++ ο χρηστης να οριζει το μεγεθος ενος πινακα.

 

πχ να φτιαξω στο προγραμμα εναν πινακα int array[]

και οταν τρεχει να παταει ο χρηστης 10 και να γινεται ο πινακας 10 θεσεων.

Δημοσ.

Η δέσμευση ενός πίνακα Ν-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>.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...