Je suis en train de faire un devoir et j'ai été bloqué à un moment donné ici. J'essaie d'écrire une fonction list_add(). La première fonctionnalité de cette fonction est d'ajouter des valeurs au tableau. Sa deuxième fonction est d'augmenter la taille du tableau. Cela fonctionne donc un peu comme un vecteur. Je ne sais pas si j'ai bien compris. Ce que j'ai essayé de faire, c'est de créer un nouveau tableau dynamique alloué qui est plus grand que l'ancien, puis de copier toutes les valeurs dans le nouveau tableau.
Est-ce la bonne approche ?
Voici le corps principal
int main()
{
const int N = 7;
//declaring dynamic array allocation
int* list = new int[N];
int used = 0, a_val;
for(int i=0;i<11;i++)
{
list_add(list, used, N, i);
}
cout << endl << "Storlek: " << N << endl << endl;
cout << "Printar listan " << endl;
for(int i=0;i<used;i++)
{
cout << list[i] << ". ";
}
}
Voici la fonction
bool list_add(int *list, int& space_used, int max_size, int value)
{
if(max_size-space_used > 0)
{
*(list+(max_size-space_used-1)) = value;
space_used++;
return true;
}
else
{
cout << "Increasing size of array!" << endl;
int new_max_size = space_used+1;
delete [] list;
int *list_new = new int[new_max_size];
for(int i=0; i<new_max_size; i++)
{
list_new[i] = i;
cout << list_new[i] << ". ";
}
cout << endl;
space_used++;
list = list_new;
return false;
}
}