Je suis en train de faire un devoir et je suis resté coincé ici. J'essaie d'écrire une fonction list_add(). La première fonctionnalité consiste à ajouter des valeurs au tableau. La deuxième fonctionnalité pour cela est d'augmenter la taille du tableau. Donc ça fonctionne un peu comme un vecteur. Je ne sais pas si je comprends bien. Ce que j'ai essayé est de créer un nouveau tableau alloué dynamique qui est plus grand que l'ancien, puis de copier toutes les valeurs dans le nouveau tableau.Tableau dynamique alloué C++
Est-ce la bonne approche?
est ici 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] << ". ";
}
}
est ici 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;
}
}
pourquoi votre fonction retourne un bool? –
Est-ce que ce sont les devoirs? – Aaron
Oui et non, c'est un devoir scolaire que j'ai trouvé sur internet. Et je le fais juste pour apprendre. – starcorn