最后通过Python介绍编程后,我决定使用C开始编码。现在我正在使用项目euler,我正在尝试使用内存分配解决问题3以适应数组。我很清楚有很多简单的方法可以做到这一点,但我想知道如何以这种方式来扩展我的知识。每当我运行此代码时,由于某种原因,我会得到非常奇怪的数字。谁能告诉我如何做这个概念?这不是太多的代码,它可能看起来很长,因为我喜欢制作大量的空间。我想补充一点,当我使用像45或50这样的数字时它很好。当使用问题中的数字600851475143时,它会开始动作。
提前谢谢!
#include <stdio.h>
int newprim_fac(long long int n){
int index=0;
int i=2;
long int MAXSIZE=100;
int*W=(int*)calloc(1,MAXSIZE);
while(n!=1){
if(n%i==0){
while(n%i==0){
printf("\n\n %d", i);
n=n/i;
W[index]=i;
index++;
}
}
i++;
if(sizeof(W)>=MAXSIZE){
*W=(int*)realloc(W,2*MAXSIZE);
}
}
printf("\n\nsize of W is: %d\n", sizeof(W));
for(i=0;i<sizeof(W);i++){
printf("\n\n%d", W[i]);
}
free(W);
return 0;
}