Bonjour à tous,

Je débute en C et j'ai bien du mal avec les pointeurs.

J'ai créé une fonction qui trouve la longueur d'une chaine. Mon problème est que je passe à ma fonction un pointeur longueur initialisé dans la fonction main.
Pourtant, la longueur de la chaine est indépendante de ce pointeur. Suis-je obligé de passer ce pointeur ?

Ma fonction est elle optimisée ? J'ai en effet vu d'autre programmes beaucoup plus longs et plus complexes.


Merci pour vos réponses

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
26
27
28
29
30
31
 
 
#include <stdio.h>
#include <stdlib.h>
 
int longueurChaine(char*chaine,int*ptLongueur);
 
int main()
{
    char chaine[1000]={0};
    int longueur=0;
    int *ptLongueur=NULL;
    ptLongueur=&longueur;
    printf("Ce programme permet de calculer la longueur d'une chaine de caracteres\n\n");
    printf("Entrez une chaine de caracteres : ");
    gets(chaine);
    rewind(stdin);
    longueurChaine(chaine,ptLongueur);
    printf("\n\nLa longueur de la chaine \"%s\" est de %d caracteres\n\n",chaine,*ptLongueur);
    return 0;
}
int longueurChaine(char*chaine,int*ptLongueur)
{
    int i=0;
    while (chaine[i]!='\0')
    {
        i++;
    }
    *ptLongueur=i;
    return *ptLongueur;
}