Question
Option 4 : It is undefined behaviour (use-after-free) / यह अपरिभाषित व्यवहार है (use-after-free)
Detailed Solution
सही उत्तर It is undefined behaviour (use-after-free) / यह अपरिभाषित व्यवहार है (use-after-free) है।
Question:
Which statement about the following C code is TRUE? int *p = (int*)malloc(sizeof(int)); *p = 42; free(p); *p = 7; / निम्नलिखित C कोड के बारे में कौन-सा कथन सत्य है? int *p = (int*)malloc(sizeof(int)); *p = 42; free(p); *p = 7;
Correct Answer: It is undefined behaviour (use-after-free) / यह अपरिभाषित व्यवहार है (use-after-free)
Dereferencing p after free(p) is a use-after-free bug, which is undefined behaviour — it may appear to work, corrupt the heap, or crash depending on the allocator. It is not guaranteed to crash, nor is it safe. / free(p) के बाद p को डीरेफरेंस करना use-after-free बग है, जो अपरिभाषित व्यवहार है — एलोकेटर के आधार पर यह काम करता प्रतीत हो सकता है, हीप भ्रष्ट कर सकता है, या क्रैश हो सकता है। न तो क्रैश की गारंटी है, न ही यह सुरक्षित है।