Я наткнулся на следующую головоломку C:
В: Почему следующая программа segfault на IA-64, но отлично работает на IA-32?
int main()
{
int* p;
p = (int*)malloc(sizeof(int));
*p = 10;
return 0;
}
Я знаю, что размер int
на 64-битной машине может отличаться от размера указателя (int
может быть 32 бита, а указатель может быть 64 бита). Но я не уверен, как это относится к вышеупомянутой программе.
Любые идеи?