Pointeurs .

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. Modérateur
    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 ;
    1. 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.
      1. Modérateur
        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);
        }