나는 double *result
. 포인터가 함수에서 참조로 전달되어야한다는 것을 알고 있습니다. void ComputeSeriesPointer(double x, int n, double *result);
main에서를 사용 하여 함수 를 호출 ComputeSeriesPointer(x, n, &result);
하면 오류가 발생합니다.
cannot convert ‘double**’ to ‘double*’ for argument ‘3’ to ‘void ComputeSeriesPointer(double, int, double*)’
ComputeSeriesPointer(x, n, &result);
^
포인터로 작업 할 때 모두 &
키를 사용하여 전달되지 않습니까? 수업 내 예제는 모두이 방식으로 수행되었습니다. 인터넷에서도 이런 식으로 이루어졌습니다. 모든 설명 / 설명이 좋을 것입니다.
나는 또한 pow
함수를 사용하고 있기 때문에 C ++ 컴파일러 (교수님의 지시에 따라)로 이것을 실행하고 있습니다.
완전한 코드를 보지 않고 무엇을하고 있는지 잘 모르겠지만 다음과 같은 일을하고 있다면 :
void ComputeSeriesPointer(double, int, double*){
// ...
}
int main(){
double *x = ...;
ComputeSeriesPointer(1.0, 1, &x);
// ...
return 0;
}
그렇다면 문제는 &x
. &
조작 변수의 어드레스를 추출하는데 사용된다. 이 경우 변수는 이미 포인터이므로 작성 &x
하면 "포인터에 대한 포인터", 즉 double**
. 그게 당신 문제입니다. 다음과 같이 함수를 호출하십시오.ComputeSeriesPointer(1.0, 1, x)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다