对不起,我知道这是最基本的问题,但我不得不问。 我有一个整数类型的数组,我想将其分配给特定的内存地址。如何用C语言做到这一点? 例如 ; int输入[10] = {4,10,89}; 所以我想将此输入分配给0x20000001。
非常感谢。
答案 0 :(得分:1)
除非要使用链接程序脚本或其他方式来管理内存分配区域,否则不要这样做。编译器会为您处理所有内存分配,并且不提供任何用于预定义内存地址的方法。
但是,如果您知道自己在做什么,则可以使用指针来处理它:
int *array = (int*)0x2000000;
现在您可以逐个元素或通过memcpy对其进行初始化。
memcpy(array, inputs, sizeof(inputs));
答案 1 :(得分:0)
如果您正在访问内存的受限区域,则可能会由于内存访问冲突而导致段错误,但是如果您知道要写入的地址,这是一个快速代码可以对其进行测试:
int address = 0x20000001;
int *ptr;
ptr = (int*) address;
*ptr = inputs;