【发布时间】:2017-04-26 10:08:58
【问题描述】:
我需要一些关于指针的类内声明的帮助。尽管我使用 c++,但我正在寻找一种使用 c 样式数组的方法(所以不幸的是没有向量)。我无法在执行过程中没有错误,例如“分段错误:11”或“总线错误:10”。目的是有一种方法可以在一个类中包含 10 个对人员的引用。
这些指针在.h文件中是这样声明的:
private:
string * name;
string * surname;
int * index1;
int * index2;
在 .cc 文件的 ctor 中,我使用了不同的方式来分配内存,例如:
string * name = new string[10];
string * surname = new string[10];
int * index1 = new int[10];
int * index2 = new int[10];
但是我遇到了运行时错误,可能是因为它实际上没有访问私有变量或者它超出了内存(“分段错误”)。 如果我不写上面的行,执行时输出是“总线错误”。 我在编译中没有错误,只有在执行期间。 我无法更改 .h 文件中的私有变量类型,并且它不允许我在类中使用 new,因为它将是 C++11 的扩展。
任何帮助将不胜感激
【问题讨论】:
-
那些是局部变量并且隐藏了你的对象实例成员。类型(
string *等)不应该存在于实际的 c-tor 中(可以说你应该首先使用std::vector<>s 无论如何)。 -
在你的 ctor 中,decalration 应该是
name = new string[10]等等.. -
感谢您的快速回复,但我也尝试过这种方式,但它返回运行时错误
-
请提供minimal reproducible example,目前只能提供很少的帮助
标签: c++ arrays pointers runtime-error bus-error