int* dividers_of(int x, int ammount){
int i,j = 1;
int* dividers = (int*)calloc(ammount,sizeof(int)); /* calloc initializes int array to 0!*/
for(i=0;i<ammount;i++){
while((x%j) != 0){
j++;
}
*(dividers+i) = j;
/*DOESNT WORK (int* dividers stays on 0-0-0)
*dividers = j;
dividers++; */
j++;
}
return dividers;
}
我试图找出什么地方错了还是不行,我的阵列中分配int j
到*dividers
,然后使dividers
点到下一个int
的代码。结果应该是指向包含int x
的int
分隔符的数组的指针。指针递增
不幸的是,如果我不喜欢这样的结果是以下数组:
dividers[] = {0,0,0};
这意味着一切都没有改变,因为calloc
填补这样的阵列。
请告诉我在
*dividers = j;
dividers++;
发生了什么?
它的拼写'amount',而不是'ammount'。 – melpomene
不要[调用'calloc'的结果](https://stackoverflow.com/questions/605845/do-i-cast-the-result-of-malloc)。 – melpomene
1/**我们不能重现这个问题**这是新手常见的问题,所以请阅读本网站帮助中心的常见问题解答,以便学习如何编写问题以便让其他人重现(并因此实验)这个问题。我完成了直接链接到该部分。如果我们要谈论礼貌,那么在您发布之前,您应该阅读整个部分。忽略这样的社区标准是无礼的。 – Sebivor