Dès lors que la question porte sur les tableaux dynamiques, il se peut que vous souhaitiez non seulement créer des tableaux de taille variable, mais aussi modifier leur taille pendant l'exécution. Voici un exemple avec memcpy
vous pouvez utiliser memcpy_s
ou std::copy
également. Selon le compilateur, <memory.h>
ou <string.h>
peut être nécessaire. Lorsque vous utilisez cette fonction, vous devez allouer une nouvelle région de mémoire, y copier les valeurs des régions de mémoire originales, puis les libérer.
// create desired array dynamically
size_t length;
length = 100; //for example
int *array = new int[length];
// now let's change is's size - e.g. 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;
Vous pouvez utiliser la constante 4 au lieu de sizeof(int)
.
17 votes
Vous utilisez un
std::vector<int>
. Et un livre .0 votes
Comment assigner et accéder à ses données une fois qu'il est initialisé ?
0 votes
Jetez un coup d'oeil à cet article, il est donné en détail pour chaque type de données : programmingtunes.com/dynamic-array-in-c
0 votes
cs.nmsu.edu/~rth/cs/cs471/C%2B%2BDynamicArray.pdf
0 votes
quora.com/What-is-the-meaning-of-%E2%80%9Cint- *p-new-10-%E2%80%9D#:~:text=The%20statement%20defines%20and%20initializes,of%20an%20array%20of%20integers.&text=This%20statement%20will%20dynamically%20allocate,integers%20from%20the%20heap...