Me encontré con el siguiente acertijo C:
P: ¿Por qué el siguiente programa se produce por defecto en IA-64, pero funciona bien en IA-32?
int main()
{
int* p;
p = (int*)malloc(sizeof(int));
*p = 10;
return 0;
}
Sé que el tamaño de inten una máquina de 64 bits puede no ser el mismo que el tamaño de un puntero ( intpodría ser de 32 bits y el puntero podría ser de 64 bits). Pero no estoy seguro de cómo se relaciona esto con el programa anterior. ¿Algunas ideas?
#include stdlib.h(para malloc)
#include <stdlib.h>, se encuentra perfectamente, pero esa no es la cuestión.
sizeof(int) == sizeof(int*), por ejemplo, los punteros se devuelven a través de un registro diferente a ints en la convención de llamada utilizada.
malloc(). GCC dice: warning: incompatible implicit declaration of built-in function 'malloc'también.
stdlib.hno estar incluido?