Trong điều sau đây:Hai trường hợp trong khi cố gắng để in NULL, một hoạt động, SegFaults khác
printf("Example%s\n",NULL);
printf("%s\n",NULL);
tôi nhận được kết quả như sau:
Example(null)
Segmentation Fault
Khi tôi đã cố gắng lùi trong GDB nó cho thấy printf()
là được chuyển đổi thành puts()
. Nhưng tôi dường như không hiểu tại sao điều này lại xảy ra.
BTW Tôi tìm thấy this bài viết nhưng dường như vẫn không có ý nghĩa.
'gcc' không khác nhau tối ưu hóa như vậy. Xem phần 2.3 và 3.1 cụ thể là http://www.ciselant.de/projects/gcc_printf/gcc_printf.html – FatalError
Ngoài ra, hãy xem báo cáo lỗi 'gcc' này để thảo luận thêm về lý do tại sao điều này không được coi là lỗi: http: //gcc.gnu. org/bugzilla/show_bug.cgi? id = 25609 – shf301
Câu hỏi tương tự: [Không nhận được lỗi phân đoạn trong C] (http://stackoverflow.com/questions/8861833/not-getting-segmentation-fault-in-c) –