Malloc是内存中特定点上的结构吗?
我正在尝试在内存中的特定位置创建结构:Malloc是内存中特定点上的结构吗?,c,struct,malloc,nrf51,C,Struct,Malloc,Nrf51,我正在尝试在内存中的特定位置创建结构: struct inRAM *ptr = (struct inRAM*)malloc(sizeof(struct inRAM)); 但这一行只在RAM中不可保留的位置分配内存。我需要从一个特定的内存地址开始malloc,它才能正常工作,但是如何工作?对于需要访问特定内存地址进行I/O的嵌入式系统,通常直接写入该地址 您不需要在这里malloc,它用于管理内存块或结构,而您不关心它将位于何处 e、 g.写入地址c00010 ptr = c00010; ptr
struct inRAM *ptr = (struct inRAM*)malloc(sizeof(struct inRAM));
但这一行只在RAM中不可保留的位置分配内存。我需要从一个特定的内存地址开始malloc,它才能正常工作,但是如何工作?对于需要访问特定内存地址进行I/O的嵌入式系统,通常直接写入该地址 您不需要在这里malloc,它用于管理内存块或结构,而您不关心它将位于何处 e、 g.写入地址c00010
ptr = c00010;
ptr->field = value;
此外,当使用覆盖在内存上的结构时,请注意填充和结构对齐 您是否正在尝试在嵌入式系统上执行内存映射I/O?如果您已经有了内存位置,为什么需要
malloc
?为指针赋值。谢谢您的评论,@WeatherVane。你说得对,我根本不需要马洛克!完美的谢谢您帮助我认识到了我的实际问题,即当我尝试从内存中的特定点开始向链表添加节点时,下一个节点没有增加,因此它一直覆盖RAM中的原始节点。简单修复:struct inRAM*ptr=head;变为结构inRAM*ptr=head++;再次感谢!