변수를 사용하여 특정 크기의 배열을 만들고 싶었지만 그럴 수있는 유일한 방법은 포인터를 사용하는 것입니다.배열 요소를 참조 해제하는 방법 (C++)
int size = 5;
string* myArray = new string[size];
이제이 배열의 요소를 다른 변수에 할당하려고합니다.이 변수는 역 참조를 통해서만 작동합니다. 다음 코드 줄은 작동하지 않습니다. 어떻게 수정해야합니까?
string line;
myArray[0] = "Hello";
line = *myArray[0];
편집 :
난 그냥 뭔가 명확히 할: 중 하나가 작동하지 않는 정상 "에서 myArray [0]"코드를 사용합니다. 컴파일되지만 충돌이 발생합니다. 여기에 내가하고 싶은 것에 관한 좀 더 구체적인 코드가 있습니다.
void MyClass::setLine(string line)
{
myLine = line; /*This is a private variable in MyClass*/
}
///////////////
MyClass* elements = new MyClass[size];
elements[0].setLine(myArray[0]);
나는 클래스에서 개인 변수에 배열 요소를 할당 할,하지만 민간 변수에 값을 할당 할 때 프로그램이 충돌합니다.
'line = myArray [0];'벡터 myArray (size); 대신 자신의 메모리를 삭제할 것을 강력히 권합니다. –
... 또는 고정 크기 인 경우 대신'std :: array'를 사용하십시오. –
"컴파일 오류가 발생합니다"라고 말하고 "작동하지 않음"대신에 오류 메시지를 붙여 넣을 수 있습니다. 이 쉬운 질문에 대해서는별로 중요하지 않지만 일반적으로 유용한 방법입니다. – anatolyg