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