作者查詢 / LPH66
作者 LPH66 在 PTT [ C_and_CPP ] 看板的留言(推文), 共6694則
限定看板:C_and_CPP
看板排序:
全部Math8895C_and_CPP6694Minecraft2013puzzle1798Little-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推: if(ptr==i) 你包在 for(int i...) 的迴圈裡了01/05 23:47
2F→: 注意看範例裡這個判斷是在 for(int i...) 的外面01/05 23:48
3F→: 範例程式裡這迴圈是 17~21 行, 但你的卻是 17~25 行01/05 23:48
4F→: 建議以後的改進方向: { 和 } 適當內縮以表示它是哪一層01/05 23:49
5F→: 例如範例 21 行那個 } 縮進去表示那是跟它同層的 17 行一組01/05 23:50
8F推: 問題點是在於你改成那樣後其他部份也會在 i==ptr 做事01/06 00:07
9F→: 原先的寫法因為條件是 i < ptr 所以並不會有 i==ptr 這圈01/06 00:08
10F→: 然後當那段進去之後, ptr 後移, 迴圈不知不覺就變長了01/06 00:09
11F→: (因為結束條件變大了) 所以 ideone 那裡才會 segfault01/06 00:10
12F→: 也是因為迴圈變長所以你才不得不加第二個 break01/06 00:12
15F推: 啊, 測了一下, ideone 那裡不是 segfault, 是 SIGFPE01/06 00:15
16F→: 問題點仍然是因為你進了 i==ptr 這一圈01/06 00:15
17F→: 所以取到了尚未賦值的 prime[ptr], 如果它正好是 0 就炸了01/06 00:16
18F→: SIGFPE 這東西基本上當做除零錯誤來看就是了01/06 00:16
20F推: 問題不在這裡, 是因為你在迴圈外參照到 i 了01/06 01:30
21F→: 你的寫法會讓這個 i 的生命週期只限在這個 for 裡01/06 01:30
22F→: 所以一出去之後就沒有 i 了01/06 01:30
23F→: 既然你要在迴圈外參照 i, 那麼就必須把宣告拉出去01/06 01:31
15F推: 樓上應該沒問題, 不過建議用 typedef 簡化宣告01/05 00:14
7F推: 呃, ideone 指的 result 是 105 行的喔12/30 21:52
8F→: 稍微看了一下, 你這裡或許需要用 enable_if 間接達成12/30 21:55
9F→: 依然模版參數型態選擇實作這個目的12/30 21:55
10F→: *依照12/30 21:55
11F→: 不然因為你兩個狀況都寫了, 即使其中一邊不進去還是會報錯12/30 21:56
12F→: 參考 http://stackoverflow.com/a/15598994 的中間做法12/30 21:56
15F推: // 因為R=int 執行107-125 ←問題在這裡12/30 23:40
16F→: 確實是只執行 107-125 沒錯, 但那個版本裡 86-105 也還在12/30 23:41
17F→: 而 86-105 那一段當代 R=int 進去時是編不過的12/30 23:41
18F→: 所以我才會建議用 enable_if 拆開12/30 23:42
20F推: 使用 enable_if 的做法 http://ideone.com/PH4Sej12/31 00:06
21F→: <class S> 這一層是必要的, 要讓成員有模版才能 SFINAE 掉12/31 00:07
22F→: 啟用點在 operator * 裡的呼叫, 使三個成員模版都試過一次12/31 00:09
23F→: 然後只有其中一個的 enable_if<> 會成立而產生程式12/31 00:09
24F→: 另外兩個被 SFINAE 掉了所以完全不存在於那個版本的類別中12/31 00:10
25F→: 因此就不會編不過12/31 00:10
13F推: 這裡應該要簡單說明一下, 這個 operator + 不會是成員函式12/27 15:39
14F→: (也就是名義上不屬於 Complex) 因此為了能存取其私有成員12/27 15:40
15F→: 才加個 friend 在那裡表示「我的私有成員可以給這人看」12/27 15:40
16F→: 你原先的寫法的 operator + 是成員函式, 因此 + 左邊僅當12/27 15:41
17F→: 是 Complex 物件時才會呼叫它, 其他狀況時是不會的12/27 15:41
2F推: sort 的交換部份整個弄亂了, 你把那部份重寫一次12/26 07:30
7F推: 所以這是演算法問題無誤, 你要的不是補資料是拉伸資料12/17 21:32
8F→: 那你就要考慮你的資料必須要怎麼延伸才會有意義12/17 21:32
9F→: 一個類似的例子 (但「非常可能和你要的不同」) 是圖片縮放12/17 21:33
10F→: 然後另外一個考慮的點: 你的演算法是否要求等長資料?12/17 21:35
11F→: 如果「等長」這個點不是重點的話你應該是改演算法去適用12/17 21:36
12F→: 注意我指的不是演算法的細節而是這演算法到底在算什麼東西12/17 21:37
16F→: 可不可行其實要看原 PO 之後要做什麼操作12/18 02:29
17F→: 所以才會問他說之後的操作演算法有沒有要求等長資料12/18 02:30
18F→: 依操作不同有些資料不能貿然做內插/最近補點/etc12/18 02:31
35F推: 嘛, 我只是單純因為不知道他要做什麼運算才會提醒注意的12/18 03:37
36F→: 你這個問題似乎是屬於訊號分析的範圍, 那個我沒什麼在接觸12/18 03:38
37F→: 但也因為他這個問題似乎真的有摸到這個邊所以才會想到12/18 03:38
38F→: 經過內插/補點/etc之後的訊號失真問題12/18 03:39
17F推: 這個檔案現在這個樣子可以做為原來的目的使用嗎?12/09 19:24
18F→: 不行的話就照樓上說的把塞進去的那個傢伙抓出來要他負責12/09 19:25
19F推: 所以這就只有最一開始塞這些 binary 進去的人知道怎麼回事12/09 21:26
20F→: 抓他出來要他改好12/09 21:26
21F→: 基本上你們整個程式/系統因為這個 binary 的關係已經崩潰12/09 21:29
27F推: 原 PO 現在想問的是這已經是既成事實了要怎麼補救12/10 10:04
28F→: 個人覺得, 原 PO 你不要去想有沒有哪個 general 做法能用12/10 10:05
29F→: 既然你的目的是解決你眼前這份爛掉的文字檔12/10 10:05
30F→: 那就只要找一個你這份文字檔適用的解法就好12/10 10:06
31F→: 上面 CP64 講的是 " 跟著 \n 兩個 byte12/10 10:06
32F→: 如果你掃了一下這幾千份爛掉的檔案裡真的都沒有這 pattern12/10 10:07
33F→: 那它就是一個解法了12/10 10:07
34F→: 少數有的或許找一個長一點的 pattern 例如 "\n 加下行開頭12/10 10:07
35F→: 例如如果下一行一定是哪個屬性那就能用了12/10 10:08
36F→: 簡單說就是, 你要找的不是萬靈丹, 而是要把死馬當活馬醫12/10 10:10
8F推: 這問題其實是你預設了空指標減去一個指向物件的指標會為負12/09 02:25
9F→: 但標準裡規定非屬同陣列的指標相減其結果未定義12/09 02:26
10F→: (即是版標講的未定義行為) 空指標顯然不會指向哪個陣列12/09 02:29
11F→: 因此無法預期相減會發生什麼事12/09 02:29
13F推: pos=strstr(...) 要括號起來...12/11 00:14
16F推: 不是不該用 char 陣列, 而是你要知道 char 陣列不等於字串12/07 22:59
17F→: strxxx 系列函數只能用在是字串的 char 陣列上12/07 23:00
18F→: 你的資料是從 /dev/urandom 裡複製來的所以是二進位資料12/07 23:00
19F→: 二進位資料不是字串所以不能用 strxxx 系列函數12/07 23:01
20F→: 所以只有 read 的回傳值 n 可信, 你要 write 也要用 n12/07 23:01
21F推: 話說回來, 既然是在練習 udp 傳輸, 一次就是固定一個大小12/07 23:04
22F→: 所以不管傳什麼資料都不是 strxxx 出場的時候12/07 23:04
23F→: 這也就是為什麼 read 這種 general 讀取的程式會回傳讀多少12/07 23:05
2F推: argv[0] 的大小只保證裝得下傳進來的字串12/05 18:51
3F→: 它後面有沒有其他字串是依執行環境而定12/05 18:51
4F→: 這裡的狀況是恰巧它後面緊接 argv[1] 所以 argv[1] 被蓋掉12/05 18:52
8F推: 就因為是自動幫你準備的參數所以沒轍, 你只能自己另外準備12/05 19:11