亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

數組索引在C中超出界限

數組索引在C中超出界限

C++
慕虎7371278 2019-06-15 10:39:52
數組索引在C中超出界限為什么C數組索引超出界限的情況下的微分#include <stdio.h>int main(){     int a[10];     a[3]=4;     a[11]=3;//does not give segmentation fault     a[25]=4;//does not give segmentation fault     a[20000]=3; //gives segmentation fault     return 0;}據我所知,它試圖訪問分配給進程或線程的內存,以防止a[11]或a[25]而且它超出了堆棧的范圍,以防.a[20000].為什么編譯器或鏈接器不提供一個錯誤,難道他們不知道數組的大小嗎?如果不是,那如何sizeof(a)工作正確嗎?
查看完整描述

3 回答

?
慕娘9325324

TA貢獻1783條經驗 獲得超5個贊

如果試圖訪問進程不擁有的內存,通常只會出現分段錯誤。

你所看到的a[11](和a[10](順便提一句)是內存,您的進程是嗎?擁有但不屬于a[]陣列。a[25000]a[]它可能完全超出了你的記憶。

變幻a[11]由于它會默默地影響不同的變量(或者堆??蚣?,這可能會在函數返回時導致不同的分段錯誤),這就更加陰險了。


查看完整回答
反對 回復 2019-06-15
  • 3 回答
  • 0 關注
  • 968 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號