panic runtime error問題分享

2021-09-13 03:46:07 字數 1203 閱讀 3084

panic: runtime error: invalid memory address or nil pointer dereference
關於這個錯誤問題panic: runtime error: invalid memory address or nil pointer dereference,我是如何解決的

一般這個問題的出現,從提示上意思意思是無效的記憶體位址或空指標

我遇到的問題是這樣的我寫了乙個session管理器,其中有乙個函式是這樣的

// sessionstart 啟動session功能

}

然後我在使用的時候,是這樣的

// welcomelogin 歡迎登入頁

這段兩端**正常編譯是沒有任何問題,但是在呼叫welcomelogin的時候就報錯了,因為welcomelogin函式呼叫了sessionstart,而sessionstart又呼叫了m.lock.lock()。

這裡注意m.lock.lock()中的m,從錯誤提示上看是m的郭,問題在**呢,我通過記錄日誌的方式找到了原因,其實

這段**和下面

這個問題在以後使用init進行操作變數重新賦值的時候一定要注意。為什麼我能突然想到這個問題,因為我之前的幾篇文章是寫如何使用mysql的,其中有個init中初始化的時候,重新賦值連線的變數涉及到這個問題,但是的做法就是直接賦值,並沒有通過':='的方式賦值

// mysqldb conn

var mysqldb *sql.db

func init()

分桔子問題

題目描述 日本著名數學遊戲專家中村義作教授提出這樣乙個問題 父親將k 0個桔子分給n個兒子 分完後父親說 老1將分給你的桔子的1 p1給老二 老2拿到後連同原先的桔子分1 p2給老三 以此類推 老n拿到後連同原先的桔子分1 pn給老大 結果大家手中的桔子正好一樣多。問n兄弟原來手中各有多少桔子?要求...

問題 分蘋果

題目描述 給定一堆共n個蘋果,兩個人輪流進行如下操作 1,將這一堆蘋果分成兩堆,每堆的蘋果數目必須不同 2,另乙個人選擇其中一堆作為新的堆,開始下一輪操作。直到某個人不能滿足要求輸掉比賽,遊戲結束。假設兩個人都足夠聰明 總會選擇對自己最優的方案。比如說有3個蘋果,第乙個人只能選擇分兩堆1 2,第二個...

分麵包問題

include include define inf 1 30 using namespace std int ways 21 21 21 ways w h m 表示的是寬為w,高為h,切了m刀之後的,最大正方的最小面積 而我們想要求的,就是 ways w h m 1 邊界條件是 w h m,因為 ...