gpt4 book ai didi

c++ - C++ 中的列表数组。指针;/

转载 作者:行者123 更新时间:2023-11-30 04:04:12 25 4
gpt4 key购买 nike

我正在尝试实现一个列表数组,但在动态内存分配方面存在一些问题,或者我还没有足够清楚地理解指针;/.这是我的代码:

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];
}
...
}

当我尝试为 tab1tab2 分配内存时,出现未处理的异常错误:

array[cc]->tab1 = new char[n];
array[cc]->tab2 = new char[n];

我不知道这些行有什么问题:( 感谢任何提示!

最佳答案

您的数组 实际上是一个指针数组,因此您必须初始化每个元素。或者,您需要一个 List 对象数组。

第一个替代方案的解决方案是将您的 for 循环更改为以下内容:

for(int cc=0; cc<size; cc++)
{
array[cc] = new List(); // Add this step
array[cc]->tab1 = new char[n];
array[cc]->tab2 = new char[n];
}

第二种选择的解决方案是更改array 变量的类型。

List * array= new List[size];

然后使用 .(点)代替 ->(箭头)。

for(int cc=0; cc<size; cc++)
{
array[cc].tab1 = new char[n];
array[cc].tab2 = new char[n];
}

关于c++ - C++ 中的列表数组。指针;/,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23891248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com