我有这个如何创建指针数组一个struct
struct Book{
string id;
string title;
string author;
};
,然后我要动态地创建指向该结构的数组。我已经试过这个,我得到分段错误。
Book *array[]= (Book*) malloc(sizeof(Book));
我想创建一个书籍列表(标识,标题,作者)。我应该尝试创建一个结构数组吗?
我有这个如何创建指针数组一个struct
struct Book{
string id;
string title;
string author;
};
,然后我要动态地创建指向该结构的数组。我已经试过这个,我得到分段错误。
Book *array[]= (Book*) malloc(sizeof(Book));
我想创建一个书籍列表(标识,标题,作者)。我应该尝试创建一个结构数组吗?
不..
保持一个std::vector<Book>
代替。
#include <string>
#include <vector>
#include <iostream>
struct Book {
std::string id;
std::string title;
std::string author;
};
int main()
{
Book b1 = { "0", "Title1", "Author1" };
Book b2 = { "1", "Title2", "Author2" };
std::vector<Book> books;
books.push_back(b1);
books.push_back(b2);
std::cout << books.at(0).title << std::endl;
// Expected output: "Title1"
}
他想要一个指针数组......不是一个'Book'对象数组。但他可能是误传了他的意图,所以+1无论如何 – 2013-05-03 16:06:21
@CharlesSalvia它听起来像一个XY问题,但。除非明确解释需要指针,否则我会倾向于认为这只是一个错误。 – juanchopanza 2013-05-03 16:10:40
考虑到Tonia正在通过“什么给我最少的错误”方法进行编程,我倾向于同意@juanchopanza。 – 2013-05-03 16:19:51
C++?为什么不用'new'呢? – soon 2013-05-03 15:57:08
我怎么能这样做与新?我尝试了很多东西,但我得到的只是错误 – Tonia 2013-05-03 16:02:28
显示你已经尝试过什么。 – soon 2013-05-03 16:03:52