當你創建一個負數的數組時,會發生什麼?聲明一個負數長度的數組
例如:
int n = -35;
int testArray[n];
for(int i = 0; i < 10; i++)
testArray[i]=i+1;
該代碼將編譯(並帶來了-Wall沒有警告啓用),似乎可以分配給testArray[0]
沒有問題。指定過去會導致段錯誤或非法指令錯誤,並且從數組中讀取任何內容都會顯示「中止陷阱」(我對此不熟悉)。我意識到這有些學術性,並且(希望)從未在現實生活中出現過,但是C標準對待這種數組有沒有什麼特別的方式呢?還是從編譯器到編譯器有所不同?
在'for'語句末尾有一個意想不到的分號(';'),我想...... – Arun 2010-09-24 00:14:09
謝謝,我修好了! – jonmorgan 2010-09-24 00:22:30