【发布时间】:2015-11-08 11:47:08
【问题描述】:
(我没有发布我的代码,因为这是一个项目,但是我试图为这个问题寻求帮助但没有运气)
您好,我正在尝试初始化指针数组 (char*) 的大小,这是我的类 class A 的私有成员变量
我正在使用构造函数通过设置一个整数变量(也是一个成员变量)来设置大小,然后该变量将用于创建我的指针数组。
到目前为止我已经这样做了:
// Constructor - 'int value' is set to a value
private:
int value;
char ** myArray = new char*[value];
所以基本上我想要一个指针数组,其中每个元素都可以指向一个字符串。我通过使用 (char*) stringVar.c_str(); 将字符串变量传递给myArray
虽然所有这些都有效,但我在尝试存储变量时遇到了一些非常奇怪的错误,甚至出现了这个错误:
free():下一个尺寸无效(快)
这很奇怪,因为即使 myArray 的大小为 4,当我尝试访问第三个元素时,我也会遇到与上述相同的错误。
我对 C++ 非常陌生,并且非常想解决这些问题。我不得不求助于这个论坛寻求帮助,并期待你们的一些想法:)
【问题讨论】:
-
使用
std::vector<std::string>似乎更好。 -
你可能试图释放一个不是由 malloc 分配的指针(或删除一个不是由 new 创建的对象),或者你可能试图释放/删除这样一个对象超过一次。
-
我怀疑编译器不喜欢“new char*[]”位。为什么不尝试类似:“char *myArray = new char[value];”
标签: c++ arrays string pointers dynamic