起因
c++課實驗,將乙個類str2中的字串成員變數追加到str中的字串。編譯沒有問題,執行時在中間卡住無法繼續執行。錯誤
應該是某個變數申請的記憶體不夠,導致寫入字元時越界。
**
const
char
* mystring::(
const
char
* p)
return m_pbuf;
}
錯因
儘管為tmp分配了記憶體,還未寫入字元,strlen(tmp)為0。
解決方法
strlen(tmp) + 1
改為m_len + strlen(p) + 1
總結
strlen() 是乙個函式,它用來計算指定字串 str 的長度,但不包括結束字元(即 『\0』 字元)。其原型如下面的**所示:
size_t strlen
(char
const
* str)
;
計算的是字串中字元個數,不能計算所佔空間。 記一次shm open返回EINVAL的錯誤排查
看redis的bg資料拷貝的時候想起程序的資料是cow的,想寫個程式看看cow的細節,因為要用到訊號量操作sem post和sem wait,訊號量的建立依賴於共享記憶體物件shm open,因為很久沒使用過的這個系統呼叫結果導致出了烏龍,把第乙個引數name給當成了路徑 名字,結果建立的時候返回的...
記一次關於vue效能問題
當時開發專案的時候,涉及到乙個操作列表 不是單純展示的列表,裡面包含很多操作功能 的功能。把列表的每個小item寫成乙個子元件,當時寫子元件沒有考慮到資料量的問題。所以在寫子元件,並沒有做什麼優化,而且裡面還加了form表單校驗,裡面還有很多事件處理,樣式處理等等複雜的邏輯。注意 首先需要從設計上面...
記一次下午關於linux的思考
參考 授予普通使用者sudo許可權 由之前的用php的exec呼叫phantomjs生成一直沒有生成出來,然後我試了直接用命令執行就可以,然後參考了這位老兄的最後八字真言 珍愛生命,遠離 root。給了我啟發,然後我去看php fpm配置conf使用者和使用者組是nginx,然後我嘗試切換到ngin...