-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;
}