[問題] double pointer for malloc
開發平台(Platform): (Ex: Win10, Linux, ...)
Linux
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
GCC
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
無
問題(Question):
由於功能開發限制,不可改變回傳的function type以及需要在子function進行動態
的malloc再回到主function進行free。
目前使用dmalloc 確認過寫法不會造成memory leak,但是想知道為何透過printf
所印出來的位址 都不一樣呢?
餵入的資料(Input):
預期的正確結果(Expected Output):
在小妹的認知當中,會覺得子function當中的P1以及Pobstatus的位置應該要是一樣
test: P1 is NULL
P1 = 0x7ffebfe4a878,Pobstatus= 0x7ffebfe4a878, Pobstatus[0].neighmac[0] = 31
P1 = 0x7ffebfe4a878, test = 123, P1[0].neighmac[0] = 31
release memory
錯誤結果(Wrong Output):
不知道應該怎麼印才能印出P1與Pobstatus是一樣的位置?
主要是要印出 應該要被做free(P1)的那個記憶體位置。
test: P1 is NULL
P1 = 0x7ffebfe4a878,Pobstatus= 0x7ffebfe4a858, Pobstatus[0].neighmac[0] = 31
P1 = 0x7ffebfe4a878, test = 123, P1[0].neighmac[0] = 31
release memory
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔)
https://github.com/yisin/test_c_code/blob/master/struc_return.c
補充說明(Supplement):
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.160.156.236
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1523259163.A.141.html
→
04/09 15:41,
6年前
, 1F
04/09 15:41, 1F
→
04/09 15:47,
6年前
, 2F
04/09 15:47, 2F
→
04/09 15:48,
6年前
, 3F
04/09 15:48, 3F
推
04/09 15:50,
6年前
, 4F
04/09 15:50, 4F
→
04/09 15:50,
6年前
, 5F
04/09 15:50, 5F
推
04/09 21:47,
6年前
, 6F
04/09 21:47, 6F
→
04/09 21:47,
6年前
, 7F
04/09 21:47, 7F