→ petercoin: 第二個參數要再乘上個數吧 11/01 14:48
→ petercoin: 沒事 我看錯行了Orz 11/01 14:49
推 gusion: 第一個是不是檢查程式認為應該要用table而不是&table[0]? 11/01 15:18
→ SuperJGL: 因為跑到memcpy的時候 沒有保證kcalloc成功 11/01 15:18
→ SuperJGL: 以第一個為例 data=NULL一樣會跑到memcpy 11/01 15:19
推 LPH66: 你的檢查是哪支程式檢查的? 11/01 16:03
→ lengcycat: LDRA軟體測試檢查的 11/01 16:47
推 LPH66: 看起來是套裝軟體, 去查他們的手冊裡這些錯誤訊息的意思 11/01 17:29
→ LPH66: 如果是公司軟體就去找相關部門要說明書 11/01 17:30
→ F04E: &table[0]的大小確實只有1byte 11/02 07:41
→ F04E: 為什麼memset時用table, 而memcpy用&table[0]?? 11/02 07:42
→ F04E: 改成 memcpy(table, data, 2048); 呢? 11/02 07:43
推 TWkobe: 同樓上 可能語法程式會用sizeof檢查你的引數 11/02 15:58
推 LPH66: 這就是為什麼我要原 PO 去找軟體手冊 11/02 16:16
→ LPH66: 我們在這裡只能猜軟體 (的設計者) 大概是怎麼想的 11/02 16:16
→ LPH66: 而實際上是不是這樣去找手冊裡一定會寫 11/02 16:16
→ LPH66: 尤其如果是套裝軟體這類的東西那不可能沒有這種手冊 11/02 16:17
→ liptonbin: 改成 memcpy(table, data, 2048);錯誤訊息仍是insuffic 11/03 10:53
→ liptonbin: ient space for operation: required=2048,avaiable=1 11/03 10:53
推 LPH66: 看起來手冊上面只有針對陣列進行舉例, 那你可以去找找 11/03 11:42
→ LPH66: 手冊其他地方有沒有對於動態記憶體配置相關的說明 11/03 11:42
→ LPH66: 你的程式碼看起來都跟動態配置有關 11/03 11:43
推 closer76: 可不可以試試看 1. 把 table 的 size 縮小 或 2. 把 tab 11/03 11:44
→ closer76: le 放到 global space? 11/03 11:44
→ LPH66: 不過我其實有一個更簡單的猜測是: 軟體看不懂 kcalloc 11/03 11:44
→ closer76: 老實說,看到你在 stack (local variable) 挖 2KB 的空 11/03 11:45
→ closer76: 間,覺得有些毛毛的…… 11/03 11:45
→ closer76: @LPH66: 也有道理!說不定工具是覺得讀取到不該讀的區域 11/03 11:47
→ closer76: ,而不是寫入! 11/03 11:47
→ LPH66: 理論上這種工具得要看得懂動態配置函數才能正確判斷 11/03 11:58
→ LPH66: 但既然是「要看得懂」那就是設計者要加入規則表示說 11/03 11:59
→ LPH66: 看到這些函數就當做這指標有指到這麼大的空間 11/03 11:59
→ LPH66: 那 kcalloc 這種只在 kernel 裡用的函數就可能不一定有考慮 11/03 12:00