作者查詢 / LPH66
作者 LPH66 在 PTT [ C_and_CPP ] 看板的留言(推文), 共6694則
限定看板:C_and_CPP
看板排序:
全部Math8895C_and_CPP6694Minecraft2011puzzle1798Little-Games1256PHP992Web_Design736killercorp717java657SYSOP599Programming587Mathematica451Windows394IME389Prob_Solve389Ajax321RegExp298b94902xxx229PttBug229HOT_Game210Visual_Basic207Inference204Hunter198Steam168NTU-K9167KS94-317160EzHotKey138BoardGame131Conan122HarryPotter120CSSE116Flash104Database96GameDesign94AndroidDev91Android90Kindaichi_Q88Wikipedia74LaTeX71BBSmovie59SMSlife57DeathNote54riddle52Weyslii49wretch42IMO_Taiwan38Suckcomic38b96902HW37NTU37b94902HW35Doraemon30NTU-MAGIC26NTUDormM723NTUcourse21ONE_PIECE19b95902xxx18KSHS_Talk18b95902HW15NTNU_Lin_9615PLT15C_Chat14CSCouncil11PttCurrent11transgender9Translate-CS9VR9NTUDormG18Education7HSNU_10857KS93-3207NCKU-BEH957NDMC-D627PttNewhand7b99902HW6hikarugo6NtuDormM16youtuber6b96902xxx5b97902HW5CompilerDev5GO5L_LifeInfo5MJ5NSwitch5SummerCourse5tutor5Hsinchu4Liu4PushDoll4AppsForBBS3b98902HW3CSIE_WSLAB3Gossiping3Kao-KSHS3KS93-3163NARUTO3NTUST-DT93-23RSSH94_3013b97902xxx2ck50th3232ck55th3252ck58th3122CS_Badminton2CSIE_Mahjong2NANLIN3012NDHU-His962NTUDormFJr2NTUGIEE_EDA2PCman2PCSH91_3052PttSuggest2PttWeb2SFFamily2WinMine2Abin1AGO1Aquarius1Army-Sir1ASHS-93-li1AskaYang1B92310XXX1b99902xxx1blind_pc1Browsers1CCSH_92_3161CGU-MED-991CGU_EE981ck55th1201ck55th3241ck56th3181CK84Courage1CLHS-53-131CM38th071consumer1CPU_AM7011CPU_FC7311CSMU-MED941CTSH913021CTSH923051DaZhi6thH3021Eclipse1FJU-AM-901FJU-BA92C1FJU_GF1FSHS-94-3181Google1Grad-ProbAsk1Greenfield1HKday1Hoobastank1HORTUS-911HSNU_10731HSNU_9291HSNU_9381HSNU_9581HSNU_9851HSNU_9891HSNU_9901Hu_Yen_20041HY-40-Xin1ILSH-943131INSECT-901Itchie1Jay1JH30th3061Jinmen1joke1kekkai1KhalilFong1KS90-3091KS94-3151KS94-3211KS98-3021lab6211LD_IM93-21MATLAB1MDscience6th1Moto_GP1MuscleBeach1NCCU00_Stat1NCCU02_PSYCH1NCCU03_ETHNO1NCCU03_PF1NCCU04_MAT1NCCU04_Stat1NCCU98_RMI1NCCU99_Stat1NCHU-AGR001NCHU-AGR071NCKU-PH981NCUFingrad031Network1NIUECE911NTNU_bridge1NTOU-YP1NTPU-JLAW941NTPU_CK_CM1NTU-GIIB20021NTU-GIIB20041NTU95thLIS1NTUBIME-1021NTUCH-941NTUDormM61NTUE-Art961NTUE-CS1031NTUE_Nse961NTUE_Nse981NTUHistory881NTUHorti961NTUKGA1NTUMath911NTUMath941NTUMT-921NTUMystery1NTUNewPlace1NTUST-DT92-11NTUT_EE490A1NUTN_SSSS1Oguri_Shun1Old-Games1onlychild1Peitou29t3161Penny1PERCUSSION1PokeMon1PttHistory1Romances1RSSH93_3071SCU_ACCM971SM02th031SM05th3xx1SOFTSTAR1SSSH-13th3111STDM-87-3051Stephen1streetsinger1TFGCRC1THU-P-Softbo1TigerBlue1TMU9711Translation1TSH97_YK1Ur-hsing1VET_921w-inds1wegoJT3021WuLing46-3051WuLing46-3171YP91-3121YP92-3011YP92-3031YP94-3141<< 收起看板(252)
1F→: 報了什麼錯? 什麼時候報的錯?03/29 16:04
2F→: 你的 new 跟 delete 是怎麼寫的? 有相關的程式碼片段嗎?03/29 16:04
3F→: 你有沒有把這個指標傳去別的地方或是從別的地方接來?03/29 16:05
7F推: OK, 所以是傳 STL 容器進 DLL 的問題03/29 19:12
8F→: 一般來說建議最好不要這樣做 (由於模版和記憶體管理等問題)03/29 19:15
9F→: 網路上有人建議使執行檔和 DLL 使用相同編譯參數03/29 19:16
10F→: 來使生成的程式碼相容, 但這做法在各種意義上有點不切實際03/29 19:17
11F→: 那這個問題就只是有地方不相容時可能出現的問題之一而已03/29 19:18
20F推: 模版生成的程式碼可能會隨著編譯參數不同或編譯器版本不同03/30 23:59
21F→: 而生成出不相容的程式碼, 因此一個在 main 裡配置的 vector03/31 00:00
22F→: 傳進 DLL 裡用 DLL 的 swap 可能會造成介面不符03/31 00:00
23F→: 另外由於 vector 有使用動態記憶體配置, 你這一 swap03/31 00:00
24F→: 代表你這個在 main 裡配置的 vector 抓著一個在 DLL 配置的03/31 00:01
25F→: 記憶體空間; 由於這些分配的程式也跟編譯參數與環境相關03/31 00:01
26F→: 在 DLL 索取卻在 main 釋放這樣的動作也會造成存取問題03/31 00:02
27F→: 所以一般來說並不建議讓 STL 容器跨越 DLL 邊界03/31 00:03
28F→: 要傳一系列東西進去可以傳以指標表示的 C 陣列03/31 00:06
29F→: 要傳一系列東西出來則建議設計介面讓 DLL 告知回傳大小03/31 00:06
30F→: 或者增加參數讓使用者表示最多可以接收多少東西03/31 00:07
13F推: 一個觀念: template 不是「一個帶型別參數的 class」03/30 23:50
14F→: 而是「一個可代型別參數用來生成任意多種 class 的模版」03/30 23:50
15F→: 型別參數不同就是不同的 class, 即使它們其他地方都很像03/30 23:51
16F→: 因此你這裡想做的就只是想在一個 vector 裡放入兩種 class03/30 23:51
17F→: (照你對 template 的理解可能你也想放更多種, 但問題一樣03/30 23:52
18F→: 那些不是同一個 class 而是不同的多種 class)03/30 23:52
19F→: 那要能這樣放的方法有很多種, 這就需要看你的需求了03/30 23:53
20F→: 不過不論哪一種都跟 template 無關03/30 23:54
12F推: 就算寫 f<v>(), 實際照 v 的值去選要呼叫的 f<A> 還是得在03/05 11:32
13F→: runtime 做吧 (在 v 非 constexpr 的前提下)03/05 11:33
14F→: 那這其實跟寫個大 switch 好像沒什麼差別03/05 11:34
15F→: 如果硬要把它藏起來, 我能想到接近的是 std::visit03/05 11:35
16F→: (C++17 新加的內建 Visitor Pattern)03/05 11:35
17F推: 對, 所以我說這是硬要藏起來而已03/05 23:31
18F→: 這樣看起來其實你的 v 用個 enum 表示好像比較像你在想的?03/05 23:35
19F→: 可能狀況數很少, 所以可以先產生起來放03/05 23:35
20F→: 現在對於這種 use case 好像也就是手動生出來放之後03/05 23:37
21F→: 收到一個對照表裡參照, 要用時照 v 值去對照表裡找出來用03/05 23:38
2F推: move constructible: 有 move 建構子01/29 23:10
3F→: is nothrow: 該建構子要宣告 noexcept01/29 23:12
4F→: 你 44 行的東西不是 move 建構子, 因為它還有第二個參數01/29 23:13
5F→: 看起來你的這個第二參數是拿來做記憶體管理的01/29 23:15
6F→: 那你必須要改成留一個它的參考在 class 裡01/29 23:16
7F→: move 的時候從被 move 的人身上找到這個東西讓它跟過去01/29 23:16
1F推: 這是期末考吧?01/01 09:52
3F→: 雖然不是很確定是不是問題所在: 思考一下 46 行你傳的長度01/01 10:47
4F→: 到底對不對; 是不是有真的「echo」回去所有東西01/01 10:48
5F→: 啊, 或者該說: 是不是多傳了東西回去01/01 10:49
4F推: 就是上面這個原因而已, int 範圍比 char 大12/02 22:28
5F→: 造成讀進來之後覆蓋到了陣列之後的空間12/02 22:29
6F→: VC 的 debug 版本會在函式結束時檢查是否區域變數堆疊完整12/02 22:30
7F→: 這裡因為覆蓋到了的空間被檢查出來因此死在函式結束處12/02 22:31
8F→: (這也就是二樓圖中的錯誤訊息框在說的事情)12/02 22:31
9F→: 正確的做法是用一個 int 的暫時變數, sscanf 進那裡去12/02 22:32
10F→: 再把其值搬回 char 變數12/02 22:33
6F推: 你的檢查是哪支程式檢查的?11/01 16:03
8F推: 看起來是套裝軟體, 去查他們的手冊裡這些錯誤訊息的意思11/01 17:29
9F→: 如果是公司軟體就去找相關部門要說明書11/01 17:30
14F推: 這就是為什麼我要原 PO 去找軟體手冊11/02 16:16
15F→: 我們在這裡只能猜軟體 (的設計者) 大概是怎麼想的11/02 16:16
16F→: 而實際上是不是這樣去找手冊裡一定會寫11/02 16:16
17F→: 尤其如果是套裝軟體這類的東西那不可能沒有這種手冊11/02 16:17
22F推: 看起來手冊上面只有針對陣列進行舉例, 那你可以去找找11/03 11:42
23F→: 手冊其他地方有沒有對於動態記憶體配置相關的說明11/03 11:42
24F→: 你的程式碼看起來都跟動態配置有關11/03 11:43
27F→: 不過我其實有一個更簡單的猜測是: 軟體看不懂 kcalloc11/03 11:44
32F→: 理論上這種工具得要看得懂動態配置函數才能正確判斷11/03 11:58
33F→: 但既然是「要看得懂」那就是設計者要加入規則表示說11/03 11:59
34F→: 看到這些函數就當做這指標有指到這麼大的空間11/03 11:59
35F→: 那 kcalloc 這種只在 kernel 裡用的函數就可能不一定有考慮11/03 12:00
3F推: 是說 C++20 在 <chrono> 好像有一系列這方面的處理函數10/28 12:13
4F→: 不過處理出來就不是 struct tm 而是 chrono:: 下的東西10/28 12:14
10F推: 這裡的 * 是解參照的 * (取出指標內容), 不是指標宣告10/27 09:24
10F推: 樓上這有點微妙, 還是有很多事用一般陣列最好10/20 10:59
11F→: 除非你跟我說你們全部都用 std::array10/20 10:59
18F→: 樓上傳進去的東西是 int [][4] 喔10/21 17:00