2016-06-20 1 views
-1

Im은 C++에서 void 함수로 어려움을 겪었습니다. void 함수는 두 개의 배열을 인수로 사용하여 일부 연산을 수행 한 후 반환합니다. 그러나 프로그램에서 호출 할 때 입력으로 설정 한 배열이 변경되지 않았습니다.C++에서 void 함수가 읽히지 않음

이 함수는 Jacobi 고유 값 알고리즘을 사용하므로 초기 행렬 D와 VV가 대각선 기준으로 반환되어야하며 차원이 흐려집니다.

jacobi (dim, VV, D);

주 기능에서 해당 줄을 쓸 때 D와 VV는 변경되지 않았습니다. D 및 VV는 모두 동적 배열 (포인터에 대한 포인터)으로 정의되며, 어떤 효과가 있습니까? 위의 명령으로 새 D와 VV가 반환되지 않아야합니까? void 함수 안에 "cout"을 만들 때, D와 VV는 둘 다 조작에 따라 변경되는 것처럼 보이지만 주 기능에서 호출 될 때는 그렇지 않습니다! 감사!

+7

실제로 코드를 설명하는 대신 표시해야합니다. –

+4

코드를 게시 할 수 있습니까? – duncan

+4

코드를 보여주십시오. 아마도 값을 반환하거나 참조로 인수를 전달해야합니다. 정품 C++ 스타일을 사용하십시오 : 스마트 포인터, 컨테이너 등 –

답변

2

분명히 함수의 다른 부분에 매개 변수를 지정하고 있습니다.

함수 매개 변수를 참조로 전달하십시오.

즉 A, B 및 C는

jacobi(A& dim, B& VV, C& D)

&에 현재 특정 유형 인 함수 jacobi(A dim, B VV, C D) 변경은 기준이다.

+0

죄송합니다. 얘들 아,하지만 마침내 나는 포인터를 함수 안에 넣고 돌려 주면 해결할 수있다! 어쨌든 답변 해 주셔서 감사합니다. – user2261553

관련 문제