我试图运行一个使用字符串的动态数组,但是当我通过函数推送它时,出现编译错误'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