-4
我正在編寫一個程序,它從命令行中獲取一個或多個數字,並找到所有數字的素數因子。我想收集指針數組中每個數字的主要因素,以便每個指針都指向輸入的每個數字的每個特定因素組。目前我正在運行一個分段錯誤核心轉儲,並且從目前爲止我能夠研究的內容中,我顯然試圖訪問未分配的內存或與NULL指針有關的某個位置。我在下面的代碼中指出了發現分段錯誤的地方。我目前對如何繼續工作感到茫然,但我會繼續尋找,但同時,如果對C有一點了解的人不會介意幫助我,那將不勝感激。最終,我必須採用此代碼並使其與pthread一起工作。帶2D動態數組的分段錯誤(核心轉儲)
`#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include<pthread.h>`
int main(int argc, char** argv){
int **primeFactor = malloc((argc-1)*sizeof(int*));
int i, j, counter, num, prime = 2;
for(i = 1; i < argc; i++){
counter = 0;
num = atoi(argv[i]);
printf("The number is: %d", num);
primeFactor[i-1] = malloc((atoi(argv[i])/2)*sizeof(int));
while(num > 1){
while(num % prime == 0){
num /= prime;
// Segmentation Fault
==> *primeFactor[i] = prime;
printf("\n%d is a factor", prime);
}
prime++;
}
prime=2;
}
printf("\n");
return 0;
}