Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Malloc是内存中特定点上的结构吗?_C_Struct_Malloc_Nrf51 - Fatal编程技术网

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++;再次感谢!