下面是我的代碼:請問這個結果在賽格故障
p = (float *) malloc(sizeof(float) * n);
p1 = p; // p1 is float*
p--; // Will this result in a seg-fault?
我猜是因爲我試圖訪問內存外分配的空間。 請有人確認嗎?
編輯 在看到霍布斯的回答後,我無法抗拒這個問題。
我堅信這不會導致賽格故障
printf("%f",p[n]); // because n is legally allocated for p
相關和可能重複[減少指針越界;遞增到邊界](http://stackoverflow.com/q/18186987/1708801)和[是否應用一個已指向數組底座的指針後減量調用未定義的行爲?](http://stackoverflow.com/q/30512669/1708801) –
而不是猜測你爲什麼不嘗試呢? – JAL
@JAL你不能「嘗試」未定義的行爲 –