PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
C_and_CPP
[問題] 使用雙重指標的題目有問題
作者:
mouwat
(QQ)
2020-09-02 10:47:23
不好意思又來麻煩大家指點
題目是codewar使用雙重指標的問題
使用C語言
https://www.codewars.com/kata/534d2f5b5371ecf8d2000a08/train/c
我查詢雙重指標的使用方法後試著寫了卻出不來結果
參考內容
寫了以下的code
https://ideone.com/sQjKpG
顯示結果
之前發生類似的問題通常是宣告範圍有問題...
有請寫C++朋友幫看一下 但他說不太熟這部分
煩請指點迷津
作者:
Lipraxde
(Lipraxde)
2020-09-02 11:24:00
你看看人家 tmp malloc 寫在哪?你寫在哪?啊...我看錯惹...我看題目的意思應該是要你幫每個 row 都 allocate 一塊空間,不過你是 allocate 一整塊。所以在它 free memory 的階段會出錯
作者:
sarafciel
(Cattuz)
2020-09-02 12:07:00
因為他test的部分free是每條row分開free的你直接alloc一整塊出來就會變成double free
作者:
Lipraxde
(Lipraxde)
2020-09-02 12:29:00
題目的 note 意思就是要你這樣 allocate memory。並不是 double free。第一個 row 以外的 rows 指到的是tmp 加一個偏移量的位置,free 的時候由於這些 pointers 不是 allocate 出來的,所以會出現 invalid pointer的錯誤
作者:
sarafciel
(Cattuz)
2020-09-02 13:11:00
啊對,這個不算double free,感謝指正XD
作者:
loveme00835
(髮箍)
2020-09-02 15:06:00
需要加的不是 C 語言malloc()/calloc() 完以後會回傳的指標, 而這些指標就是需要給 free() 的引數, 所以呼叫次數先要對得上才行, 這是大原則.
作者:
Lipraxde
(Lipraxde)
2020-09-02 17:56:00
你可以自己寫幾隻程式後用 valgrind 跑,valgrind 會告訴哪邊對記憶體的操作有問題
作者:
loveme00835
(髮箍)
2020-09-03 05:37:00
為什麼你在呼叫函式以前不先看它的說明, 而是靠別人寫的程式碼來猜用途?
作者: reemir
2020-09-22 10:06:00
什麼叫做雙重指標?有這種東西嗎?
繼續閱讀
[問題] 透過copy elision 來return by value
lovejomi
[問題] server socket 緩衝 相關問題
applejuice64
[問題] 新購電腦WIN10 初次執行C語言 無法編譯
cgadpp
[問題] 請教 C/C++ 程式方面的問題...++*p...
Joeng
addresssanitizer heap-buffer-overflow 錯誤
hydebeast
[問題] header的小問題
joshddd
[問題] 製作training data 問題
magic83v
[問題] 關於類型轉換
asdfg1597860
[問題] opencv 學習
spong
[問題] 一般變數與const變數 在表頭檔問題
anoymouse
Links
booklink
Contact Us: admin [ a t ] ucptt.com