मैं निम्नलिखित सी पहेली पर आया:
प्रश्न: IA-64 पर निम्न प्रोग्राम क्यों नहीं आता है, लेकिन IA-32 पर ठीक काम करता है?
int main()
{
int* p;
p = (int*)malloc(sizeof(int));
*p = 10;
return 0;
}
मुझे पता है कि int64 बिट मशीन पर आकार एक सूचक के आकार के समान नहीं हो intसकता है ( 32 बिट हो सकता है और सूचक 64 बिट हो सकता है)। लेकिन मुझे यकीन नहीं है कि यह उपरोक्त कार्यक्रम से कैसे संबंधित है। कोई विचार?
#include stdlib.h(
#include <stdlib.h>, यह पूरी तरह से मिल रहा है, लेकिन यह सवाल में नहीं है।
sizeof(int) == sizeof(int*), जहां , उदाहरण के लिए पॉइंटर्स वापस आ गए, हालांकि intउपयोग किए गए कॉलिंग कन्वेंशन में एस करने के लिए एक अलग रजिस्टर ।
malloc()। जीसीसी कहता है: warning: incompatible implicit declaration of built-in function 'malloc'भी।
stdlib.hशामिल नहीं किया जा रहा है?