C_and_CPP 板


LINE

開發平台(Platform): Mac 編譯器: GCC 額外使用到的函數庫(Library Used): uthash 問題(Question): 完整資訊請至 https://hackmd.io/@allencheng/rygXSYiTq 小弟在自學 C 語言,並嘗試用 C 來解 leetcode 題目 在 refactor test code 的時候,編譯沒問題,但執行時發生 segmentation fault source: // origin numsSize = 4; int *nums1; nums1 = (int *) malloc(numsSize * sizeof(int)); nums1[0] = 2; nums1[1] = 7; nums1[2] = 11; nums1[3] = 15; // refactor numsSize = 4; int *nums1; nums1 = (int *) malloc(numsSize * sizeof(int)); int data[] = {2, 7, 11, 15}; // 這行出錯 for (size_t i = 0;i < numsSize;i++) nums1[i] = data[1]; 檢查後發現是宣告 int array 的時候執行錯誤 有嘗試尋找問題的原因,但可能是觀念不足或不知道關鍵字 找不到可以解釋的地方 所以才來這詢問是什麼原因造成錯誤? -- 另外再請教,我是用網路上的資源跟書局翻書自學 C 語言 找不到同伴跟前輩,所以有點瞎子摸象 不曉得我目前這樣寫的方式,符不符合一般 C 語言開發的慣例或風格? 目前找到的學習資源大都只是教語法或基礎觀念, jserv 的「你所不知道的 C 語言」對經驗薄弱的我來說來有點艱澀,消化不良 想知道有沒有比較實務運用學習資源或教材? 例如手把手地的實做出一個 C 語言的軟體 / 實用的 lib 操作 目前已學完 Havard CS50, 作業有做完 CMU 15-213(CS:APP) 緩步持續努力中,但教材很「底層」,實務經驗不夠也很痛苦 XD 謝謝 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.9.49.120 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1672551970.A.87A.html
1F:→ stucode: 問題應該是出在沒有初始化 returnSize 01/01 14:17
2F:→ nh60211as: 一樓說的沒初始化 01/01 14:46
3F:→ nh60211as: https://wandbox.org/permlink/1BsfTjdddHwLmcqE 01/01 14:46
4F:→ nh60211as: https://i.imgur.com/t5Uu4Ir.png 01/01 14:47
5F:→ Richun: gcc先加個flag -Wall 把所有的warning都開出來 01/01 15:44
6F:→ Richun: 你的returnSize是一個簡單的int能處理的事,在main裡面只 01/01 15:47
7F:→ Richun: 需要初始化 size_t returnSize = 0; 或把size_t換成int 01/01 15:48
8F:→ Richun: 在call function傳參數時加上&,&returnSize傳址進去。 01/01 15:50
9F:→ allencheng: 您好,已補上初始化,但是變成編譯過,執行錯誤 Orz 01/01 15:58
10F:→ allencheng: 有把訊息補在 hackMD link 上,請參照,謝謝 01/01 15:58
11F:推 Schottky: ......請問returnSize做什麼用途,初始化為NULL是對的嗎 01/01 16:01
12F:→ nh60211as: 初始化是要malloc,你的twoSum裡面是直接assign value 01/01 16:03
13F:→ nh60211as: ,如果returnSize是NULL,當然會直接segmentation fault 01/01 16:03
14F:→ nh60211as: 。不然就是像Richun講的在main的returnSize改成int,然 01/01 16:03
15F:→ nh60211as: 後傳address 進twoSum 01/01 16:03
16F:→ allencheng: 問題已解決,解決內容跟 git commit 已更新在 hackMD 01/01 16:12
17F:→ allencheng: 謝謝大家的協助,搞懂問題出在哪了,會再補上解說 01/01 16:14
18F:→ Richun: 在pointer跟address那邊你應該還很不熟,還沒搞懂為什麼 01/01 16:21
19F:→ Richun: function的宣告returnSize是用int*型態(應該size_t*更好) 01/01 16:22
20F:→ allencheng: 參數型態的部分是因為 leetcode 裡面就是這樣宣告的 01/01 16:27
21F:→ allencheng: ,我是先在 LC 測過,再回過頭嘗試寫測試練習 C 語言 01/01 16:27
22F:→ allencheng: 的 01/01 16:27
23F:推 Dracarys: https://hal.inria.fr/hal-02383654/document 01/01 18:47
24F:→ Dracarys: https://bit.ly/3i6aYGq 01/01 18:48
25F:推 Lipraxde: 程式風格百百種,就像口音一樣,只要參與開發的時候能 01/03 12:25
26F:→ Lipraxde: 適應就好,更重要的事是邏輯層面的,要條理分明、精簡 01/03 12:25
27F:→ Lipraxde: 而且完整 01/03 12:25
28F:推 dmeiki: 可以看 6.1810,看完會 c 跟作業系統 01/04 16:58
29F:→ allencheng: 感謝推薦!我會花點時間好好研究的 01/04 18:14
30F:推 dalbuhr: 讚喔 01/19 11:17
31F:推 hahalala: 請問 6.1810 這是? 02/01 20:00
32F:推 cloki: 關鍵字都有了就直接google吧... 02/02 06:51







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BabyMother站內搜尋

TOP