【发布时间】:2019-04-29 14:07:52
【问题描述】:
很抱歉,我知道这是非常基本的问题,但我不得不问。 我有一个整数类型的数组,我想将它分配给特定的内存地址。我怎样才能用 C 语言做到这一点? 例如 ; 整数输入[10] ={4,10,89}; 所以我想将此输入分配给 0x20000001。
非常感谢。
【问题讨论】:
-
在大多数情况下,你不应该尝试这个;您应该让 C 实现分配内存位置。并不是所有的内存都可以在程序中免费使用——C 实现,包括操作系统和加载器,已经安排将部分内存用于程序代码,部分用于堆栈,部分用于动态分配的内存,等等。你不能只取你选择的一部分而不可能干扰它。在某些情况下,有一些方法可以请求特定的内存地址,但它们用于特殊目的。为什么要这样做?
-
@EricPostpischil 嵌入标签解释了原因。它不是个人电脑。
-
什么编译器?为什么需要具体地址? GCC 的一种可能性是
__attribute__ ((section (".mySection")))但这取决于你想要做什么 -
@Lundin:嵌入式标签提供了线索。它不回答。是否应该使用硬编码常量、供应商提供的标头中提供的地址、链接器中的分配、内核例程返回的地址或其他方式分配指针,取决于具体情况。
-
@EricPostpischil Embedded = 硬件相关。正如我们所说,我正在编写一个 eeprom 驱动程序,并直接访问物理内存的绝对地址。每天都有嵌入式系统编程。