이 코드를 가지고 있지만 컴파일되지 않고 잘못 된 것을 이해할 수 없습니다. 벡터의 포인터가 올바르지 않습니다. 제 아이디어는 main()에서 일부 숫자를 수집하여 벡터 및 배열에 저장 한 다음 함수의 메모리 주소를 함수에 전달하고 포인터를 사용하여 저장된 데이터를 인쇄하는 것입니다.함수에서 벡터 포인터를 사용하는 중 오류가 발생했습니다.
포인터를 사용하여 메모리를 절약해야한다고 말했을 때 아래 코드는 벡터 및 배열의 내용을 복사하지 않지만 액세스 포인터는 사용합니다 기억 속에있는 그들의 위치 - 그게 내가하고 싶은 것입니다.
#include <iostream>
#include <vector>
using namespace std;
void function(vector<int>* a, int *s)
{
cout << "function starts.." << endl;
for(int i=0;i<a->size();i++)
{
cout << a[i] << endl;
cout << s[a[i]] << endl;
}
cout << "function ends..." << endl;
}
int main(void)
{
vector<int> m;
int s[102];
for(int i=0;i<10;i++)
{
m.push_back(i*i);
s[i*i] = i-2;
}
function(&m, &s);
return 0;
}
컴파일 중 몇 가지 오류가 발생합니다. 잘못된 것입니다.
내 코드의 문제점과 해결 방법을 알려주십시오.
void function(vector<int>& a, int *s)
그리고
function(m, ...);
을 확실히 이상한 원인이 벡터에 대한 포인터에 [] 사용 :
컴파일 오류를 추측하는 것이 귀하의 질문 중 하나입니까? ;-) –
나는 C와 C++ 프로그래밍에 대해 수년간 가르쳐 왔기 때문에 일반적인 문제 설명이 "작동하지 않는다"고 생각하기 때문에 이미 추측하기에 아주 좋습니다. eBay에서 구입 한 Crystal Ball도 도움이됩니다. – Tronic