繁体   English   中英

追加到数组的末尾

[英]Append to the end of an array

我的目标是将List附加到数组的末尾。 当我尝试执行它给我分割错误。

我试图进行一些调试,而给我带来麻烦的指令就在下面:

array[i] = tmp[i];

这是我的代码:

int i;
List *tmp = array;

array = (List *)malloc((dim+1) * sizeof(List));

for (i = 0; i < dim; i++) {
    array[i] = tmp[i];
}

dim++;

array[dim-1] = (List)malloc(sizeof(struct TList));
memcpy(array[dim-1], set, sizeof(struct TList));

return array;

“昏暗”是一个全局变量,我用它来跟踪数组的维数

我知道这可能很简单,但是我真的不知道如何解决这个问题。

感谢帮助

第一句话:

int i;
List *tmp = array;

array = (List*)malloc((dim+1) * sizeof(List));

for (i = 0;i < dim;i++){

  array[i] = tmp[i];

}

可以是:

array = realloc(array, (dim+1) * sizeof(List));

array[dim-1] = (List)malloc(sizeof(struct TList)); 为什么强制转换中的类型也不是sizeof中的类型

但是,真正的问题是,除了通过内存泄漏导致内存丢失之外,您还希望进行该分配吗?

该行必须删除。


什么是从TList的定义和ListSet的类型?


线

memcpy(array[dim-1], set, sizeof(struct TList));

是错误的,必须是( 必须是一个列表)

array[dim-1] = set;

因为array是List的向量,而不是List *的向量

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM