【发布时间】:2022-01-17 09:03:29
【问题描述】:
我是新手,学习 c++,尝试动态分配字符串数组并由用户输入每个字符串。所以首先,用户输入字符串的数量,然后将每个字符串使用cin>>
int main() {
int numberOfTeams;
char** Teams;
cout << "Enter the number of teams " << endl;
cin >> numberOfTeams;
Teams = new char* [numberOfTeams] ;
for (int i = 0; i < numberOfTeams; i++) {
cin >> Teams[i];
}
delete[] Teams;
return 0;
}
程序在 cin 一个字符串之后把我扔了出去。 我得到的错误是:
Exception thrown: write access violation.
**_Str** was 0xCEDECEDF.
我不能使用“字符串”验证,只能使用字符数组。
谢谢大家
【问题讨论】:
-
你需要在
cin >> Teams[i];之前分配Teams[i]记住Teams[i]是一个字符指针但是你没有初始化它来指向任何东西。 -
感谢所有 cmets。我如何在 cin 之前分配“Teams[i]”?不幸的是,学校规定不使用“string”
-
尝试在
cin >> Teams[i];之前加入 Teams[i]。使用 new 或 malloc,例如Teams[i] = new char[512]或Teams[i] = (char *)malloc(512)
标签: c++ string dynamic-memory-allocation