web-dev-qa-db-fra.com

Quelqu'un peut-il expliquer comment ajouter un élément à un tableau en programmation C?

Si je veux ajouter un nombre à un tableau initialisé à int, comment puis-je faire cela?

int arr[10] = {0, 5, 3, 64};
arr[] += 5; //Is this it?, it's not working for me...

Je veux {0,5, 3, 64, 5} à la fin.

Je suis habitué à Python et, en Python, il existe une fonction appelée list.append qui ajoute automatiquement un élément à la liste pour vous. Une telle fonction existe-t-elle en C?

11
user3326078
int arr[10] = {0, 5, 3, 64};
arr[4] = 5;

EDIT: Donc, on m'a demandé d'expliquer ce qui se passe quand vous faites: 

int arr[10] = {0, 5, 3, 64};

vous créez un tableau avec 10 éléments et vous allouez des valeurs pour les 4 premiers éléments du tableau.

N'oubliez pas non plus que arr commence à index arr[0] et se termine à index arr[9] - 10 éléments

arr[0] has value 0;
arr[1] has value 5;
arr[2] has value 3;
arr[3] has value 64;

après cela, le tableau contient des valeurs parasites/zéros car vous n'avez attribué aucune autre valeur.

Mais vous pouvez toujours allouer 6 valeurs supplémentaires alors quand vous faites 

arr[4] = 5;

vous affectez la valeur 5 au cinquième élément du tableau. 

Vous pouvez le faire jusqu'à ce que vous allouiez des valeurs pour le dernier index de la arr qui est arr[9];

Désolé si mon explication est agitée, mais je n’ai jamais été aussi douée pour expliquer les choses.

11
bitcell

Vous pouvez avoir un compteur (freePosition), qui suivra le prochain emplacement libre dans un tableau de taille n. 

2
Arjun Prasad

Il n'y a que deux façons de mettre une valeur dans un tableau, et l'une n'est qu'un sucre syntaxique pour l'autre:

a[i] = v;
*(a+i) = v;

Ainsi, pour mettre quelque chose en tant que 4ème élément, vous n'avez pas d'autre choix que arr[4] = 5Cependant, votre code devrait échouer car le tableau n'est alloué que pour 4 éléments.

0
Amadan

Si vous avez un code comme int arr[10] = {0, 5, 3, 64}; et que vous souhaitez ajouter ou ajouter une valeur à l'index suivant, vous pouvez simplement l'ajouter en tapant a[5] = 5.

Le principal avantage de le faire comme ceci est que vous pouvez ajouter ou ajouter une valeur à un index quelconque non obligé de le continuer, comme si je voulais ajouter la valeur 8 à l'index 9, je peux le faire à l'aide du concept ci-dessus avant remplir avant les index . Mais en python en utilisant list.append(), vous pouvez le faire en continu.

0
Vignesh kanna