IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Sacrés pointeurs ?


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    amateur
    Inscrit en
    Octobre 2007
    Messages
    731
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 731
    Par défaut Sacrés pointeurs ?
    Bonsoir,

    Voilà, je dois faire un simple & logique entre deux signaux binaires générés aléatoirement. J'obtiens des adresses mémoire pour le résultat. Je constate que je n'ai toujours rien compris aux pointeurs, je suis triste -.-'

    RESULTAT DE LA COMPILATION
    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
     
     tableau[1]=1
     tableau[2]=1
     tableau[3]=0
     tableau[4]=0
     tableau[5]=1
     
     tableau[1]=0
     tableau[2]=0
     tableau[3]=0
     tableau[4]=0
     tableau[5]=0
     
     1 ET 0 = 3998128
     1 ET 0 = 3998128
     0 ET 0 = 1682005107
     0 ET 0 = 1768843629
     1 ET 0 = 1634890867
    CODE

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    #include <stdio.h>
    #include <stdlib.h>
    #include <windows.h>
    #define T 5
     
    int  *Remplissage        ( int *E, int *S                           );
    void  Affichage_Init     ( int *E                                   );
    int  *AND                ( int *E0, int *E1, int *S                 );
    void  Affichage_Resultat (char *operation, int *E0, int *E1, int *S );
     
    int main ()
    {
     
        char And[3]="ET";
        char Or [3]="OU";
     
        int *a_init = (int*)malloc(T*sizeof(int));
        int *b_init = (int*)malloc(T*sizeof(int));
        int *a      = (int*)malloc(T*sizeof(int));
        int *b      = (int*)malloc(T*sizeof(int));
        int *s0     = (int*)malloc(T*sizeof(int));
        int *s1     = (int*)malloc(T*sizeof(int));
     
        Remplissage        ( a_init, a     );
        Remplissage        ( b_init, b     );
        Affichage_Init     ( a             );
        printf("\n");
        Affichage_Init     ( b             );
        printf("\n");
        AND                ( a, b, s0      );
        Affichage_Resultat ( And, a, b, s0 );
     
        getchar();
     
     
    }
     
     
    void Affichage_Init ( int *E )
    {
        int i = 0;
        for ( i ; i<T ; i++ )
            {
                printf(" tableau[%d]=%d\n", (i+1), E[i]);
            }
    }
     
    void Affichage_Resultat ( char *operation, int *E0, int *E1, int *S )
    {
        int i = 0;
        for ( i ; i<T ; i++ )
            {
                printf(" %d %s %d = %d \n", E0[i], operation, E1[i], S[i]);
            }
    }
     
    int *Remplissage( int *E, int *S )
    {
        int i = 0;
        for ( i ; i<T ; i++ )
            {
                S[i]=rand()%2;
            }
     
        return S;
    }
     
    int *AND ( int *E0, int *E1, int *S )
    {
        int i=0;
        for ( i ; i<T ; i++ )
            {
     
                if ( (E0[i]==0) && (E1[i]==0) )
                   {
                                S[i]==0;
                   }
     
                if ( (E0[i]==1) && (E1[i]==0) )
                   {
                                S[i]==0;
                   }
     
                if ( (E0[i]==0) && (E1[i]==1) )
                   {
                                S[i]==0;
                   }
     
                if ( (E0[i]==1) && (E1[i]==1) )
                   {
                                S[i]==1;
                   }
     
            }
     
            return S;
    }
    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Ce n'est pas une question de pointeurs : le tableau S n'est jamais initialisé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    int *AND ( int *E0, int *E1, int *S )
    {
    ....        
                if ( (E0[i]==0) && (E1[i]==0) )
                   {
                                S[i]==0;
                   }
    ....
    == est une comparaison, pas une assignation

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ...
                if ( (E0[i]==0) && (E1[i]==0) )
                   {
                                S[i]=0;
                   }
    ...

  3. #3
    Membre éclairé
    Homme Profil pro
    amateur
    Inscrit en
    Octobre 2007
    Messages
    731
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 731
    Par défaut
    Ah ben oui forcement, comme quoi le sommeil c'est important ! merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. pointeurs
    Par ghost74 dans le forum C
    Réponses: 3
    Dernier message: 14/12/2002, 02h52
  2. Pointeur vers un tableau
    Par Nikos dans le forum C
    Réponses: 3
    Dernier message: 09/12/2002, 00h43
  3. [Turbo Pascal] Allocation et désallocation de pointeurs dans une fonction
    Par neird dans le forum Turbo Pascal
    Réponses: 13
    Dernier message: 17/11/2002, 20h14
  4. djgpp et pointeurs far -2
    Par elvivo dans le forum Autres éditeurs
    Réponses: 16
    Dernier message: 29/07/2002, 22h43
  5. djgpp et pointeurs far
    Par elvivo dans le forum C
    Réponses: 2
    Dernier message: 13/07/2002, 00h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo