【发布时间】:2014-07-16 11:22:53
【问题描述】:
我正在尝试实现一个列表数组,但在动态内存分配方面存在一些问题,或者我对指针的理解还不够清楚;/.这是我的代码:
struct List {
List * next;
char * tab1;
char * tab2;
};
int size =4000;
List ** array= new List*[size];
void add(char * table_one, char * table_two)
{
int n=40;
for(int cc =0; cc<size; cc++)
{
array[cc]->tab1 = new char[n];
array[cc]->tab2 = new char[n];
}
...
}
当我尝试为 tab1 和 tab2 分配内存时发生未处理的异常错误:
array[cc]->tab1 = new char[n];
array[cc]->tab2 = new char[n];
我不知道这些行有什么问题:( 感谢任何提示!
【问题讨论】:
-
您将 char 缓冲区放入
List实例中。但是这是分配了一个特定的List[cc]吗?这个例子对我来说也有点复杂。为什么 List 有指向下一个 List 的指针? -
您在
array中创建了一个指针列表,但它们指向哪里? -
Too many pointers. 请改用适当的 C++。