【发布时间】:2017-01-18 21:46:42
【问题描述】:
我们应该为每个索引分配一个空字符串,然后替换 在函数 addB() 中有一个值。 我对此很陌生,所以我遇到了很多麻烦。
class A //in a.h
{
private:
B * b;
int maxNumberOfItems;
//...
public:
A();
~A();
void addB(const B & something);
};
//in a.cpp
A::A()
{
maxNumberOfItems=10;
for(int i=0;i<maxNumberOfItems;i++)
{
b[i]="";//has to be an empty string, I am getting a segmentation fault
}
}
A::~A(){/*...*/}
//...
//in b.h
class B
{
private:
string name;
int price;
public:
void setName(string);
string getName();
void setPrice();
int getPrice(int);
B & operator=(string &);
};
//in b.cpp
B & B::operator=(string & a){name = a;price = 0; return *this;}
//...
这只是显示我的问题的程序的 sn-p
【问题讨论】:
-
b似乎是一个未初始化的指针...您想知道如何分配内存吗? -
您的
b未分配。阅读operator new[] -
房间里的大象:如果可能,使用
std::vector代替动态数组。
标签: c++ segmentation-fault initialization dynamic-memory-allocation