繁体   English   中英

如何使用带有指针的指针的记忆?

[英]How to use memmove with pointer of pointer?

我在C中具有以下结构:

typedef struct {
double value;
char* name;
} COMPONENT;

而且我有以下指针向量:

COMPONENT **list = malloc(sizeof(COMPONENT*)*100);

该列表仅包含10个COMPONENT结构的指针,甚至可以分配给100个元素。 现在,我想使用记忆棒在第一个位置插入一个新的COMPONENT:

memmove(list+sizeof(COMPONENT*), list, sizeof(COMPONENT*)*10);
list[0] = new_element_ptr;

但是此操作不起作用= [。 我正在丢失所有其他引用(列表[1],列表[2]等...)。 因为它是一个结构并且我的向量只有指针,所以这有区别吗?

这是您要寻找的:

memmove(list + 1, list, sizeof(list[0]) * 10);

在添加指针时,您未添加字节偏移,而是添加了元素数量。

暂无
暂无

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

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