Pour un tableau initialisé partiellement et de manière dispersée (le cas le moins courant):
Il faut parcourir tout le tableau et se poser la question à chaque élément s'il est initialisé ou non ==> une boucle for sur la taille du tableau.

exemple 1: Avec une marque de non initialisation dans le tableau
Soit le tableau tab initialisé comme suit (-1 indique que l'élément n'est pas initialisé):

0
1
2
3
4
5
6
7
8
9
12
-1
-1
-1
14
-1
-1
-1
-1
-1

for (i=0; i<taille; i++)  /* parcourir tous les éléments du tableau */
    {
     if (tab[i] != -1)       
/* Si l'élément est initialisé */
        tab[i]=tab[i]+2;  
/* incrémenter de 2 l'élément i du tableau tab */
    }

exemple 2: Avec un second tableau qui mémorise les éléments initialisés
Soit le tableau tab initialisé comme suit :

0
1
2
3
4
5
6
7
8
9
12
?
?
?
14
?
?
?
?
?

Et le tableau init qui mémorise (par 1) les éléments initialisés dans tab :

0
1
2
3
4
5
6
7
8
9
1
0
0
0
1
0
0
0
0
0

for (i=0; i<taille; i++)  /* parcourir tous les éléments du tableau tab*/
    {
     if (init[i] == 1)       
/* Si l'élément est initialisé */
        tab[i]=tab[i]+2;  
/* incrémenter de 2 l'élément i du tableau tab */
    }

suivant      plan