c 建立單連結串列這樣寫為什么會出現ACCESS VIOLATION錯誤

時間 2022-09-26 00:20:02

1樓:篤俠

給你改了一下,不知是不是你所需要的:

#include

#include

#include

using namespace std;

typedef struct lnodelnode,*linklist;

}void showlinklist(linklist l,string name)

p=l;

a=p->a;

n=p->n;

coutwhile( p->next!=null )cout<<" "}// a=p->a;

// n=p->n;

// if(a>0)fh='+';

// else

// cout<<" "

return 0;}

2樓:匿名使用者

void showlinklist(linklist l,string name){

double a;

int n;

char x='x';

char fh;

linklist p;

//p=new lnode; 這裡多餘,有記憶體洩漏p=l->next;

a=p->a;

n=p->n;

cout// 後面的語句你沒有判斷p為null的情況,所以會出錯while (p && p->next) // 加上判斷p != null的判斷,後面a=p->a等也要加

。。。。

這是我寫的c++單連結串列的建立、插入結點和輸出的程式,為什麼會有錯呢?

3樓:

2個錯誤;

1、主函式的while迴圈沒有跳出語句,邏輯錯誤。可以改成

while(true){

4樓:

如果你隨便寫一個程式不會有錯的話,

那為什麼還會有軟體工程這門課程呢?

為什麼還會有那麼多關於軟體除錯的書和**呢?

為什麼還會有高手和菜鳥的差別呢?

c++程式設計 報access violation錯誤

c++程式設計 報access violation錯誤

5樓:

access violation(非法訪問),general protection fault(一般保護性錯誤)或者invalid page fault(無效頁面錯誤),雖然說法不一樣,但本質上總是由同一種錯誤引起的。access violation常常在計算機使用者執行的程式試圖存取未被指定使用的儲存區時遇到。

access violation at address 《十六進位制值》

in module 《應用程式名》

read of address 《十六進位制值》

「access violation at address 00000000.read of adress 00000000.意思是:在地址 00000000 存取違反,禁止對地址00000000的讀取

出現access violation at address 00000000. read of address 00000000.原因是:

沒有執行服務端軟體,所以客戶機會提示"access violation at address 00000000, read of address 0000000",開啟服務端程式或檢查網線即可解決。

另外,可能出現這個問題的原因是因為你是在winrar的視窗中執行程式,而程式又找不到主要檔案引起的。

解決方法:)~~

嘗試用相容方式執行該程式.右鍵點選圖示——屬性——相容型——選中「以相容方式執行該程式」——下面的選框中可以選擇以95、98、nt4.0或2000模式來執行。

推薦選擇98試試看。

6樓:

非法訪問

引起的可能性很多,可能是相容問題,可能是資料定義上的衝突,也可能是記憶體讀取的錯誤。具體要看你真個程式的結構了

用c建立單連結串列時出現問題

7樓:

create_l(linklist *l,int n)

}int main ()

8樓:

linklist* initlist(linklist * s)

void create_l(linklist *l,int n)}

9樓:匿名使用者

這個問題我曾經也遇到過。。。

vc裡面需要用到指標的指標才能在子函式裡面分配記憶體給其他函式的區域性變數,所以傳參的時候要用linklist **l,傳入的引數用&a,當然申請空間等操作就要用*a作為左值了!

你可以在除錯的時候發現a的地址在傳入初始化子函式之後任然沒有變,就是這個原因了。

10樓:肚子痛的嘛

linklist * a;

你這個是野指標吧

c++建立一個單連結串列但是出錯了,求指教

11樓:匿名使用者

list::list(void)

這裡錯了,建立初始節點,你這個head被當成了內部變數,而不是你想要的類成員變數,應改為

head = new node;

12樓:匿名使用者

list v = list();這個改成:list v = new list();試試!

為什么會出現錢,為什麼會出現錢

第一 錢是比中國古代四大發明更偉大們發明。有了錢 積累和交換物質財富才有了可能。更重要的是使人類的精神財富有了計籌的可能。動腦子也可賺錢。錢加快了人類的交流。加速了人類的生產能力 使人類進化大大加快了。第二 擁有錢的多少雖然造成富人與窮人的巨大差距。但錢本身對人是最平等。當你花八十元買一條褲子時,你...

為什么會出現水資源短缺,為什麼會出現水資源短缺

隨著人類科學技術的不斷進步,生產能力越來越強,同時使用資源和破壞力也越來越大,發達的工業生產使用大量水資源,尤其是城市人口集中的地區,大量附近地表水和地下水,而自然界的水資源補給是有限的,一旦超過大自然的補給能力,就會造成供水量不足,水資源短缺的現象。還有一種表現是水質型水資源缺水,由於工廠企業一味...

為什么電腦開啟小遊戲後會出現白屏

電腦出現白屏可能是因為哪些原因?6.視訊記憶體損壞 當視訊記憶體損壞後,在系統啟動時就會出現花屏混亂字元的現象,處理方法 必須更換視訊記憶體條。7.病毒原因 在某些病毒發作時也會.使用正常的電腦怎麼會產生白屏呢?是屏的質量問題還是顯示卡損壞呢?經常撥動液晶屏和主機板連線線接觸不好也會產生嗎?為什麼有...