แค่อยากรู้ว่าจะเกิดอะไรขึ้นถ้าฉันกำหนดอาร์เรย์ที่มีความยาวเป็นศูนย์int array[0];
ในโค้ด? GCC ไม่บ่นเลย
โปรแกรมตัวอย่าง
#include <stdio.h>
int main() {
int arr[0];
return 0;
}
การอธิบาย
ฉันกำลังพยายามหาว่าอาร์เรย์ที่มีความยาวเป็นศูนย์เริ่มต้นด้วยวิธีนี้แทนที่จะชี้ไปที่ความยาวตัวแปรในความคิดเห็นของ Darhazer นั้นได้รับการปรับให้เหมาะสมหรือไม่
นี่เป็นเพราะฉันต้องปล่อยโค้ดบางส่วนออกไปในป่าดังนั้นฉันจึงพยายามคิดว่าฉันต้องจัดการกับกรณีที่SIZE
ถูกกำหนดไว้0
หรือไม่ซึ่งเกิดขึ้นในบางรหัสที่มีการกำหนดแบบคงที่int array[SIZE];
ฉันรู้สึกประหลาดใจจริงๆที่ GCC ไม่บ่นซึ่งนำไปสู่คำถามของฉัน จากคำตอบที่ฉันได้รับฉันเชื่อว่าการไม่มีคำเตือนส่วนใหญ่เกิดจากการรองรับโค้ดเก่าซึ่งไม่ได้รับการอัปเดตด้วยไวยากรณ์ [] ใหม่
เนื่องจากฉันสงสัยเกี่ยวกับข้อผิดพลาดเป็นหลักฉันจึงติดแท็กคำตอบของ Lundin ว่าถูกต้อง (ของ Nawaz เป็นครั้งแรก แต่ยังไม่สมบูรณ์เท่าที่ควร) คนอื่น ๆ ชี้ให้เห็นถึงการใช้งานจริงสำหรับโครงสร้างเบาะท้ายในขณะที่เกี่ยวข้องนั้นไม่ได้ สิ่งที่ฉันกำลังมองหา
[]
Python หรือแม้แต่""
ใน C คืออะไร? บางครั้งคุณมีฟังก์ชันหรือมาโครที่ต้องใช้อาร์เรย์ แต่คุณไม่มีข้อมูลที่จะใส่ลงไป