非法內存訪問
發布時間: 2023-11-26 22:21:17
這有好幾種情況,常見的是C系統安排內存的有些區域是不能寫數據的,如果代碼誤操作向這些保留區域寫數據就要產生非法訪問錯誤;有些區域即使讀取也是不可以的,也會產生上述錯誤。
② c語言, 運行的時候內存訪問非法 求解答
不是很看得懂,你寫的東西。
我覺得,首先既然是動態的結構體數組,那麼頭指針應該分配一個空間吧,然後要吧創建學生表和初始化化分開,創建是返回一個空的,可供增加的東西,而初始化是新增節點,並連上去。最後要麼老老實實代指針進行傳址,要麼直接返回指針。
上面空話,也許沒有問題,我覺得問題出在del函數,按理說,一個鏈表帶頭指針進去刪了就完了,就只是修改一下指針的指向,然後釋放就行了,基本不存在什麼好說的。
其實如果不熟練,大可不必動態分配,就靜態的數組,每個節點加一個int cur;這個cur對應下一個數組元素的下標,這樣方便又好理解,當增加時就在末尾增加,只需要修改cur就行,而刪除同理,插入刪除的確不方便,會浪費空間,但是一個小程序要多少空間?如果數組不夠了,就realloc唄!雖然不太安全,也沒事,用結構體弄鏈表真是太折磨人了
其實,主要是沒數據,不然還可以試著調試看看,自己寫的最好好事自己調試,找不出問題,就一個函數一個函數的檢查,這樣就能萬無一失了
③ c語言。為什麼計算機有足夠的內存空間,卻還要提醒我們一些代碼做了一些非法內存訪問
內存空間足夠和非法內存訪問二者有什麼聯系么。。
內存的非法訪問,就是指應用程序試圖訪問一塊不受系統管理的內存區域。一般有兩種情況,第一種是訪問越界,是指應用程序申請分配了內存,但是訪問超出了申請的范圍;第二種是無效訪問,包括 有申請內存直接訪問和猶豫程序漏洞導致訪問無效的指針地址。
還有什麼內存泄漏,內存溢出等意思都是不一樣的。
熱點內容