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
다음 int
를 가리킨 dividers
*dividers
에 다음 만들기를 할당하고있어 작동하지 않는 코드를 잘못 무엇인지 찾기 위해 노력하고있어. 결과는 int x
의 int
디바이더가 포함 된 배열에 대한 포인터 여야합니다. calloc
이런 배열을 채우기 때문에 아무 의미포인터 점진
dividers[] = {0,0,0};
변경된 :
불행히도이 같은 그렇게하면 그 결과는 다음의 배열이다.
*dividers = j;
dividers++;
에서
일이 뭐죠?
dividers++;
다음은 마지막에 원래 값이 없습니다 : 당신은 루프에서 dividers
을 증가하는 경우
을 '금액'이 아니라 '금액'. – melpomene
[calloc의 결과를 캐스팅하지 마십시오] (https://stackoverflow.com/questions/605845/do-i-cast-the-result-of-malloc). – melpomene
1/** 문제를 재현 할 수 없습니다. ** 이것은 신규 사용자에게 공통적 인 문제이므로이 웹 사이트의 도움말 센터에있는 FAQ를 참조하여 다른 사람들이 문제를 재현 (따라서 실험)하십시오. 섹션에 직접 연결되었습니다. 예의에 관해 이야기 할 예정이라면 여기에 게시하기 전에 전체 섹션을 읽어야합니다. 이와 같은 커뮤니티 표준을 무시하는 것은 무례합니다. – Sebivor