我試圖運行一個使用字符串的動態數組,但是當我通過函數推送它時,出現編譯錯誤'dynamicArray': undeclared identifier
,'string':undeclared identifier
和illegal use of type 'void'
。出於某種原因,所有這些錯誤都指向了標題。在函數中使用字符串的動態數組問題
我所說的指針位置:
string* dynamicArray = NULL;
我調用該函數在這裏:
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;
}
}
}
PS:向量可能會更好,但我恐怕這不是一個選項。請只提供處理指針的修復程序。
你在哪裏做 「串* dynamicArray = NULL;」 ?你確定它不是錯誤地放在功能範圍之外的地方嗎? –
字符串是來自std字符串庫嗎?你應該使用namespace std添加頭文件#include,並且看起來新的字符串數組將覆蓋舊的字符串數組。 –
michaeltang
直到用戶輸入'N'時,您纔會覆蓋dynamicArray指針而不刪除它。 – rozina