Closed. This question needs
details or clarity。它当前不接受答案。
想改善这个问题吗?添加详细信息并通过
editing this post阐明问题。
4年前关闭。
我正在编写一个程序,该程序从命令行获取一个数字,并找到该数字的所有主要因素。我想在一个指针数组中收集每个数字的质因数,以便每个指针将针对输入的每个数字指向每个特定的质数组。我目前正在遇到分段错误核心转储,并且根据到目前为止的研究,我似乎正在尝试访问未分配内存或与NULL指针有关的内存。我在下面的代码中指出了发生分段错误的位置。我目前对如何继续不知所措,但我会继续寻找,但与此同时,如果对C有更好了解的人不介意帮助我,那将不胜感激。最终,我必须采用这段代码并使其与pthreads一起使用。
`#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;
}
我是一名优秀的程序员,十分优秀!