如何在C++;? 我尝试学习C++中的动态数组。对于integer,动态数组如下所示: int main() { int x; cin >> x; int *dynamic = new int[x]; //some codes delete [] dynamic; return 0; }
如何创建动态结构数组?我尝试了这个代码,但失败了如何在C++;? 我尝试学习C++中的动态数组。对于integer,动态数组如下所示: int main() { int x; cin >> x; int *dynamic = new int[x]; //some codes delete [] dynamic; return 0; },c++,arrays,dynamic,struct,C++,Arrays,Dynamic,Struct,如何创建动态结构数组?我尝试了这个代码,但失败了 struct Phone{ char name[30]; char number[20]; } int main(){ int x; cin >> x; Phone *record; Phone *record = new Phone[x];// Code fails here } 我对动态数组很困惑。请帮帮我。谢谢。分配int和分配struct在语法上没有区别 你的语法是正确的。
struct Phone{
char name[30];
char number[20];
}
int main(){
int x;
cin >> x;
Phone *record;
Phone *record = new Phone[x];// Code fails here
}
我对动态数组很困惑。请帮帮我。谢谢。分配
int
和分配struct
在语法上没有区别
你的语法是正确的。您只需定义两次记录
指针。删除第一个定义,您就全部设置好了(哦,在struct{}
声明之后缺少分号)
<>请注意,现代C++可能更倾向于使用现有的STL容器(<代码>向量< /代码>或类似),而不是手动调用<代码>新< /COD>和<代码> DELL> []/COD>。我认为这是为了学习,而不是为了生产代码。我还建议使用std::vector。这将为您节省很多问题和内存错误。只要做:
struct structName
{
...
}
std::vector<structName> structVector;
实际的错误消息是什么?当我尝试输入记录[0]时,程序中断。名称和编号是什么让您认为仅仅因为类型更改就有两个
record
声明是必要的(或允许的)?我尝试了没有Phone*record的代码;shldn不是电话*记录=新电话;那么*record.name=something和*record.number=something?BTW号码应该是int型的吗?你能给我一个关于这个(特别是结构)的来源吗?我只会参考Stroustrup的“C++编程语言”,但是根据你的经验,你可能会寻找一本比较友好的书。
structVector.push_back(structName{});