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