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

 

 

 

This site uses cookies to enable you to log in. We do not store or sell any personal data. By continuing to use this website, you agree to their use. Thanks!