Come creare una matrice dynamic di numeri interi

Come creare un array dinamico di numeri interi in C ++ usando la new parola chiave?

 int main() { int size; std::cin >> size; int *array = new int[size]; delete [] array; return 0; } 

Non dimenticare di delete tutti gli array che hai assegnato con new .

Dal C ++ 11, c’è un’alternativa sicura a new[] e delete[] che è zero-overhead a differenza di std::vector :

 std::unique_ptr array(new int[size]); 

In C ++ 14:

 auto array = std::make_unique(size); 

Entrambi i precedenti si basano sullo stesso file di intestazione, #include

Potresti prendere in considerazione l’utilizzo della libreria di modelli standard. È semplice e facile da usare, inoltre non devi preoccuparti delle allocazioni di memoria.

http://www.cplusplus.com/reference/stl/vector/vector/

 int size = 5; // declare the size of the vector vector myvector(size, 0); // create a vector to hold "size" int's // all initialized to zero myvector[0] = 1234; // assign values like a c++ array 
 int* array = new int[size]; 

Non appena la domanda riguarda l’array dinamico, è ansible non solo creare array con dimensioni variabili, ma anche modificarne le dimensioni durante il runtime. Ecco un esempio con memcpy , puoi usare anche memcpy_s o std::copy . A seconda del compilatore, potrebbe essere richiesto o . Quando si utilizzano queste funzioni, si assegna una nuova area di memoria, si copiano i valori delle regioni di memoria originali e quindi si rilasciano.

 // create desired array dynamically size_t length; length = 100; //for example int *array = new int[length]; // now let's change is's size - eg add 50 new elements size_t added = 50; int *added_array = new int[added]; /* somehow set values to given arrays */ // add elements to array int* temp = new int[length + added]; memcpy(temp, array, length * sizeof(int)); memcpy(temp + length, added_array, added * sizeof(int)); delete[] array; array = temp; 

Puoi usare costante 4 invece di sizeof(int) .

allocare dynamicmente un po ‘di memoria usando new :

 int* array = new int[SIZE];