Tôi đã xem qua câu đố C sau:
H: Tại sao chương trình sau đây mặc định trên IA-64, nhưng lại hoạt động tốt trên IA-32?
int main()
{
int* p;
p = (int*)malloc(sizeof(int));
*p = 10;
return 0;
}
Tôi biết rằng kích thước của intmáy 64 bit có thể không bằng kích thước của con trỏ ( intcó thể là 32 bit và con trỏ có thể là 64 bit). Nhưng tôi không chắc điều này liên quan như thế nào đến chương trình trên. Có ý kiến gì không?
#include stdlib.h(ví malloc)
#include <stdlib.h>, nó hoàn toàn được tìm thấy, nhưng đó không phải là câu hỏi.
sizeof(int) == sizeof(int*), ví dụ, nếu các con trỏ được trả về thông qua một đăng ký khác với ints trong quy ước gọi được sử dụng.
malloc(). GCC nói: warning: incompatible implicit declaration of built-in function 'malloc'quá.
stdlib.hkhông được bao gồm?