เมื่อใดที่ฉันควรใช้ malloc ใน C และเมื่อใดที่ไม่ควรใช้
ฉันเข้าใจวิธีการทำงานของ malloc () คำถามของฉันคือฉันจะเห็นสิ่งนี้: #define A_MEGABYTE (1024 * 1024) char *some_memory; size_t size_to_allocate = A_MEGABYTE; some_memory = (char *)malloc(size_to_allocate); sprintf(some_memory, "Hello World"); printf("%s\n", some_memory); free(some_memory); ฉันละเว้นการตรวจสอบข้อผิดพลาดเพื่อความกะทัดรัด คำถามของฉันคือคุณไม่สามารถดำเนินการข้างต้นโดยการเริ่มต้นตัวชี้ไปยังที่จัดเก็บแบบคงที่ในหน่วยความจำได้หรือไม่? บางที: char *some_memory = "Hello World"; ณ จุดใดที่คุณต้องจัดสรรหน่วยความจำด้วยตัวคุณเองแทนที่จะประกาศ / เริ่มต้นค่าที่คุณต้องเก็บไว้