की गतिशील स्मृति आवंटन मैं malloc का उपयोग कर गति 2, गतिशील रूप से एक सरणी बनाने की कोशिश कर रहा हूं।पूर्णांक सरणी
int *d = (int*)malloc(2 * sizeof(int));
d[0] = 4;
d[1] = 5;
d[2] = 8;
d[3] = 9;
d[4] = 7;
int i;
for (i = 0; i < 5; i++)
printf("%d \n", d[i]);
मुझे इस कोड चलाने के लिए, यह 4, 5, 8, 9, 7
प्रिंट: यहाँ मेरी कोड है।
मुझे आश्चर्य है कि यह अनुरोध किए गए (2 पूर्णांक) से अधिक मेमोरी (5 पूर्णांक) आवंटित करने में सक्षम था?
आपका कोड व्यवहार अलग-अलग निष्पादन पर अनिर्धारित माध्यम है, आप अलग-अलग व्यवहार देख सकते हैं, आप पहले से भविष्यवाणी नहीं कर सकते हैं, आपका प्रोग्राम कभी-कभी क्रैश हो सकता है। यह कोड गलत है! अविश्वसनीय दुर्भाग्य से सी संकलक इसकी रिपोर्ट नहीं करता है। –