Equivalent "array_push" de PHP en C
Tutoriel présenté par : Oktopuss
Date d'écriture : 24 juillet 2016
Date de révision : -
Bonjour à tous !
Toujours dans mon travail sur les tableaux, je nécessitais une fonction me permettant de rajouter une valeur à un tableau, sans connaitre la case du tableau libre.
En PHP, cette fonction s'appelle array_push. J'ai donc créé ma propre fonction array_push en C :
void array_push(int array[], int taille, int valeur) { int i = 0; for(i = 0; i < taille; i++) { if(array[i] == 0) { array[i] = valeur; break; } } }
La fonction nécessite un tableau, la taille de ce tableau, et une valeur à ajouter.
Voici le code avec des tests :
#include <stdio.h> #include <stdlib.h> void array_push(int array[], int taille, int valeur); int main() { int i = 0, taille = 10; int tableau[taille]; // Initialisation du tableau for(i = 0; i < taille; i++) { tableau[i] = 0; } // Remplissage partiel du tableau for(i = 0; i < 5; i++) { tableau[i] = i + 1; } // Affichage n°1 du tableau for(i = 0; i < taille; i++) { printf("tableau[%d] = %d\n", i, tableau[i]); } array_push(tableau, taille, 10); printf("\nAjout d'un element au tableau.\n\n"); // Affichage n°2 du tableau for(i = 0; i < taille; i++) { printf("tableau[%d] = %d\n", i, tableau[i]); } array_push(tableau, taille, 24); printf("\nAjout d'un element au tableau.\n\n"); // Affichage n°2 du tableau for(i = 0; i < taille; i++) { printf("tableau[%d] = %d\n", i, tableau[i]); } return 0; } void array_push(int array[], int taille, int valeur) { int i = 0; for(i = 0; i < taille; i++) { if(array[i] == 0) { array[i] = valeur; break; } } }
La preuve en image :
Cette fonction m'est très utile dans le jeu que je suis en train de coder. J'espère que cela sera également utile à d'autre !
A plus sur Meruvia !
Oktopuss