Bonjour,

J'ai écrit cette fonction très simple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 #include <stdio.h>
#include "asso.h"
// fonction longueur : calcule le nombre de cases mémoires effectivement utilisées dans un tableau de taille 30 max.
// => permet de calculer la longueur d'un vecteur. k doit être mis à 1 pour que le calcul soit correct.     
int longueur(double vecteur[30], int k)
{
    if (k == 31 || vecteur[k] == 0)
    {
        k--;
        return k;
    }
    else
    {    
        k++;
        longueur(vecteur, k);
    }
}
Je l'appelle ensuite dans le fichier suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <stdio.h>
#include "asso.h"
 
int main()
{
	int tab[3]; // tableau de test
	int n,k;
 
	// remplissage de tab	
	for (k=1;k<31;k++)
	{
		if (k<4)
		{
			tab[k] = 1;
		}		
		else
		{
			tab[k] = 0;
		}
	}
	// calcul de sa longueur
//	n = longueur(tab,1);
	printf("le tableau a une longueur de %d \n", n);
	return 0;
}
Je compile ensuite le tout avec gcc 4.1.1 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
gcc -c fonction.c
gcc -c main.c
gcc fonction.o main.o -o main.out
La compilation se passe bien, mais à l'exécution (ie quand je tape ./main.out), mon programme m'affiche une magnifique ligne blanche... et ne s'arrête que si je fais [ctrl]+c.

Quelqu'un pourrait-il me dire où est mon erreur svp?

Merci d'avance pour vos réponses

Agnès