कोड का पालन है:क्या मैं सी में स्थिर और स्वचालित चर को मुक्त कर सकता हूं?
#include <stdlib.h>
int num = 3; // Static external variable
int *ptr = #
int main(void)
{
int num2 = 4; // Automatic variable
int *ptr2 = &num2;
free(ptr); //Free static variable
free(ptr2); //Free automatic variable
return 0;
}
मैं ऊपर कोड को संकलित करने के लिए प्रयास करें और यह काम करता है, मैं free()
समारोह में सक्षम दोनों स्थिर चर और भी स्वत: चर मुक्त करने के लिए करता है उत्सुक हूँ? या मूल रूप से यह कुछ भी नहीं करता है?
यह "काम करता है" की पर्याप्त निम्न गुणवत्ता परिभाषा के लिए "काम करता है"। यह एक ही सिस्टम, एक ही कंपाइलर, या विभिन्न संकलन विकल्पों पर भी क्रैश हो सकता है। यह बस ** अपरिभाषित व्यवहार ** है - कुछ भी हो सकता है, यहां तक कि कुछ भी उम्मीद है। – Jens