Pointeurs .

Pas de -  
KX Messages postés 19031 Statut Modérateur -
Bonjour,
j' ai une question qui me démange ..
Sur struct et pointeurs ..
Pour quoi je peu pas faire ça ..

typedef struct test {
int *toto ;
int val ;

} test ;

int main(void){

test *test ;
int tata = 4 ;
int *b = &tata ;
test->toto = b ;

printf(" ?? " );

}
Configuration: Linux capitaliste
Firefox 3.0.3

3 réponses

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    Tu peux pas écrire test *test ;
    test est un type défini par struct, il ne peut alors n'être utilisé que pour désigner le type...

    essaye test *t ;
    0
  2. loupius
     
    Ben oui tu PEUX le faire ... mais à plus ou moins long terme c'est le 'segment fault' assuré.
    Il FAUT allouer de l'espace à 'test'.
    Bonne continuation.
    0
  3. KX Messages postés 19031 Statut Modérateur 3 020
     
    typedef struct test
    {
        int* toto;
        int val;
    } test;
    
    int main(void)
    {
        test* t = new(test);
    
        int tata = 4;
        int *b = &tata;
    
        t->toto = b ;
            
        printf(" ?? " );
    
        delete(t);
    }
    0