開發平台(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 的時候執行錯誤
有嘗試尋找問題的原因,但可能是觀念不足或不知道關鍵字
找不到可以解釋的地方
所以才來這詢問是什麼原因造成錯誤?