Equivalent "array_push" de PHP en C

 

Tutoriel présenté par : Oktopuss
Date d'écriture : 24 juillet 2016
Date de révision : -

 

   Bonjour à tous ! angel

   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 ! wink

           A plus sur Meruvia ! smiley

                                  Oktopuss

 

 

 

Connexion

CoalaWeb Traffic

Today145
Yesterday297
This week942
This month4616
Total1743823

26/04/24