8
เป็นไปได้หรือไม่ที่จะเริ่มต้นตัวชี้ C เป็น NULL
ฉันเคยเขียนสิ่งต่างๆเช่น char *x=NULL; บนสมมติฐานที่ว่า char *x=2; จะสร้างcharตัวชี้ไปยังที่อยู่ 2 แต่ในบทช่วยสอนการเขียนโปรแกรม GNU Cบอกว่าจะint *my_int_ptr = 2;เก็บค่าจำนวนเต็ม2ไว้ที่ที่อยู่แบบสุ่มใด ๆ ก็ตามmy_int_ptrเมื่อมีการจัดสรร สิ่งนี้ดูเหมือนจะบอกเป็นนัยว่าของฉันเองchar *x=NULLกำลังกำหนดค่าของการNULLร่ายให้กับ a charคือที่อยู่แบบสุ่มบางส่วนในหน่วยความจำ ในขณะที่ #include <stdlib.h> #include <stdio.h> int main() { char *x=NULL; if (x==NULL) printf("is NULL\n"); return EXIT_SUCCESS; } ในความเป็นจริงพิมพ์ เป็นโมฆะ เมื่อฉันรวบรวมและเรียกใช้ฉันกังวลว่าฉันกำลังอาศัยพฤติกรรมที่ไม่ได้กำหนดหรืออย่างน้อยพฤติกรรมที่ไม่ระบุและฉันควรเขียน char *x; x=NULL; แทน.