[英]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的定义和List和Set的类型?
线
memcpy(array[dim-1], set, sizeof(struct TList));
是错误的,必须是( 集必须是一个列表)
array[dim-1] = set;
因为array是List的向量,而不是List *的向量
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.