我猜想,你们在生活中做了很多工作。 铭记C++是different 语言,与C大部分星群和一些标准图书馆共享。 这意味着在C++中,C级的罚款可能相当高(甚至危险)。
顺便说一句,请以更“C++-ish”的方式重写你的法典:
#include <iostream> // std::cout, std::endl
#include <string> // std::string
struct Rec // typedef is implicit for structs in C++
{
std::string s1; // use std::string instead of char arrays
std::string s2;
std::string s3;
}; // don t forget the semicolon!
int main()
{
Rec * a[10];
a[0] = new Rec; // allocates the right amount of memory, no need to cast
a[0]->s1 = "hello"; // std::sring handles the assignment for you
std::cout << "a[0] = " << a[0]->s1 << std::endl; // use iostreams
delete a[0]; // delete is an operator, not a function, no need for parentheses
getchar(); // warning, this is not portable
return 0;
}
如你所知,<代码>新代码>不是“经过改进的<代码>小代码>”。 它的类型(不需要投放)、使用更加安全(分配所需记忆的准确数量、不需要<>条码>的<>条码/代码>)以及“<条码>>、cannot :它援引班级建筑商(作为<条码><><>><>>>条/代码>援引承载人)。
在C++,如C,alplace不同于 初始<>。 在C部分,只有<代码>mset。 在C++物体的构造中,零块可能更为复杂。 因此,请在never上使用 Smalloc
,以创建具有非属地构造者(或拥有无三维构体的田地-Rec
就是这种情况。 由于<条码>新代码>始终有效,而且具有额外特点,你应当加以利用。