Je suis tombé sur le puzzle C suivant :
Q : Pourquoi le programme suivant présente-t-il un défaut de segmentation sur IA-64, mais fonctionne bien sur IA-32 ?
int main()
{
int* p;
p = (int*)malloc(sizeof(int));
*p = 10;
return 0;
}
Je sais que la taille de int
sur une machine 64 bits peut ne pas être la même que la taille d'un pointeur ( int
peut être de 32 bits et le pointeur peut être de 64 bits). Mais je ne suis pas sûr que cela ait un rapport avec le programme ci-dessus. Avez-vous une idée ?