1. 程式人生 > >報錯總結

報錯總結

先佔個坑,平時遇到的編譯器怎麼報錯了就在這篇下面寫一寫了。

除錯是一項必備技能!!!

C Visual Studio

1,
0xC0000005: 寫入位置 0xCCCCCCD8 時發生訪問衝突

分配記憶體出現了問題。去除錯的時候可以明顯看見分配好記憶體的和沒分配好的地址是有區別的。
我自己定義了一個結構體陣列,但是不知道怎麼給他分配記憶體,換了一種寫法把結構體元素一個個分配空間這條編譯就過了。
for (int i = 0; i < N; i++)
{
v[i] = (Vertex)malloc(sizeof(V));
x[i] = (Vertex)malloc(sizeof(V)*M);
}

2**.無法進行寫入**
看一下是不是上一次的執行結果沒有關!!!把它關了試試,還不行就關了執行結果之後重新開啟Visual Studio就沒什麼問題了。

Java Eclipse
1.輸出結果是上一次的執行結果,或者執行父類的結果

先檢查一下有沒有最基本的錯誤,就是main的那裡 public static void main(String[] args)有沒有錯,要是沒有的話檢查一下輸出結果是不是父類的裡面的toString的結果,如果是的話很可能就是子類在輸出的時候呼叫了父類的toString輸出了父類的字串。需要自己構造一個toString。看了一下以前的程式碼,發現在println的時候一般都是用get方法得到的結果或者是把一個物件toSting()。

  1. CloneNotSupportedException
    如果類沒有覆蓋clone()方法就用super.clone()呼叫的話就會造成一個CloneNotSupportedException的錯誤。因為在java.lang.Object裡他是protected的。
    我改了一個寫法用前面學的異常處理搞了一下可以執行
    try {
    		return super.clone();
    		}
    		catch(CloneNotSupportedException e) {
    
    			System.out.println("Cloning not allowed.");
    
    			return this;
    		}