c++类中的动态内存分配初始化
Dynamic memory allocation initialisation in C++ class
(我没有发布我的代码,因为这是一个项目,但我曾试图得到帮助,但没有运气)
嗨,我正试图初始化指针数组(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 (): invalid next size (fast)
这很奇怪,因为即使myArray
的大小是4,当我试图访问,比如说,第三个元素,我得到了和上面一样的错误。
我是c++的新手,我非常想解决这些问题。我不得不求助于这个论坛,我期待着你们的一些想法:)
如果你是新的c++程序员,并希望与c++字符串列表的工作是更好的工作与std::vector<std::string>
如何使用矢量的完整教程见:http://www.cplusplus.com/reference/vector/vector/
但在你的问题是字符串列表大小固定?或不呢?如果字符串列表不是固定的,你必须首先在构造函数中为数组malloc空间,然后当你想在字符串列表中插入字符串时,再为数组realloc数组,例如:
class A{
private:
char** arrayy;
int arrayysize;
A(){
arrayy = (char**)calloc(1,sizeof(char*));
arrayysize = 1;
}
insertToarrayy(char* data){
strcpy(arrayy[arrayysize-1],data);
arrayy = (char**)realloc(arrayy,arrayysize+1);
arrayysize += 1;
}
}
相关文章:
- Win32编译器选项和内存分配
- 多个文件的内存分配错误"在抛出 'std :: bad_alloc' what (): std :: bad_alloc 的实例后终止调用" [C++]
- 当需要超过16GB的连续内存时,内存分配失败
- 尝试摆脱任何堆内存分配
- 以下代码执行哪种内存分配(动态或静态)?
- 开放 CV 中的动态内存分配,用于视频处理
- 为什么类和 main() 函数中也有动态内存分配
- 使用 NTAllocateVirtualMemory 和 GetProcAddress 的内存分配问题不起作用
- C++:矢量分配器行为、内存分配和智能指针
- 介于 [固定数组] 和 [带内存分配的指针] 之间的性能
- Linux C++ 中的页面对齐内存分配
- 整数内存分配/释放
- 将内存分配返回值强制转换为 TYPE 数组
- C++程序什么都不做,但瓦尔格林德显示内存分配
- 给定特定内存地址的数组的动态内存分配
- 如何完成内存分配
- 我刚刚了解了C++中的动态内存分配
- 在先前调用 string::find 后添加内存分配和内存集会导致它返回 npos.为什么?
- 对于堆上的页面对齐内存分配是否有任何优化或不同的 API?
- 无法删除布尔动态内存分配