문자열을 사용하는 동적 배열을 실행하려고하지만 함수를 통해 밀어 넣을 때 컴파일 오류 'dynamicArray': undeclared identifier
, 'string':undeclared identifier
및 illegal use of type 'void'
이 발생합니다. 이러한 모든 오류는 어떤 이유로 헤더를 가리 킵니다.동적 배열 함수 문제에서 문자열 사용
populateArray(dynamicArray);
헤더에 무엇 :
void populateArray(string *&dynamicArray);
기능 :
void populateArray(string *&dynamicArray)
{
char decide;
bool moreStrings = true;
int counter = 0;
while (moreStrings == true)
{
counter ++;
dynamicArray = new string[counter];
cout << "\nEnter your string here:";
cin >> dynamicArray[counter - 1];
cout << "\nDo you want to enter another string? Y/N:";
cin >> decide;
decide = toupper(decide);
if (decide == 'N')
{
moreStrings = false;
}
}
}
내가 여기에 함수를 호출
string* dynamicArray = NULL;
:
여기 포인터 전화
추신 : 벡터가 더 좋을지 모르지만 그게 옵션이 아닌 것 같습니다. 포인터를 다루는 픽스 만 제공하십시오.
"문자열을 * dynamicArray = NULL;" ? 실수로 함수 범위 밖의 장소에 놓이지 않았습니까? –
문자열이 std 문자열 라이브러리에서 왔습니까? #include 네임 스페이스 std를 사용하여 헤더 파일을 추가해야합니다. 새로운 문자열 배열이 이전 하나를 덮을 것 같습니다. –
michaeltang
사용자가 'N'을 입력 할 때까지 dynamicArray 포인터를 삭제하지 않고 덮어 씁니다. – rozina