Le 04/04/08, Leopoldo Ghielmetti<[EMAIL PROTECTED]> a écrit : > > Donc il semblerait que peu importe s'il s'agit d'une architecture 32b ou > 64b, les deux codes compilent correctement. Du moins avec le compilateur > gcc 4.1.2 sur architecture intel. >
Par curiosité, pourrais-tu essayer avec l'option -fno-builtin ? En effet, comme on voit avec GCC 4, le compilateur connait en interne (donc même sans include !) les déclarations standards des fonctions standards comme malloc et printf : toto.c:3: warning: incompatible implicit declaration of built-in function 'malloc' Et on voit qu'il se plaint que les types sont incompatibles entre la déclaration de malloc built-in (void *malloc()) et celle qu'il déduit implicitement du source (int malloc()). Tu as bien fait d'utiliser le pointeur, c'est effectivement à ce moment que je m'attend à un crash possible, pas au retour de malloc. Cela dit, si le compilateur ne lit que 32 bits (un int) au lieu de 64 (un void*) de la valeur retournée par malloc, mais que l'adresse tient sur 32 bits (comme 0x501010 dans ton exemple), peut-être que ça marchera tant que l'allocation ne dépasse pas les 4 Go. -- Marc Mongenet Creator of the Web 2 Markup Language http://w2ml.com _______________________________________________ gull mailing list [email protected] https://secure.alphanet.ch/cgi-bin/mailman/listinfo/gull
