Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.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/3/arrays/13.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
SPECYFIC ADDRESC++中的字节数组_C++_Arrays_Memory_Bytearray - Fatal编程技术网

SPECYFIC ADDRESC++中的字节数组

SPECYFIC ADDRESC++中的字节数组,c++,arrays,memory,bytearray,C++,Arrays,Memory,Bytearray,我想将进程内存的某些部分映射为字节数组。 怎么做 byte * AmmoBytes = (byte *) 0xXXXXXXXX; 我有一个字节数组: byte AmmoBytes[3] 我希望这个数组从地址0xXXXXXXX开始; 怎么做?这是不安全的,但你可以说 byte * AmmoBytes = (byte *) 0xXXXXXXXX; byte*AmmoBytes=byte*0xXXXXXXXX这是不安全的,但是你可以说 byte*AmmoBytes=byte*0xXXXXXXXX

我想将进程内存的某些部分映射为字节数组。 怎么做

byte * AmmoBytes = (byte *) 0xXXXXXXXX;
我有一个字节数组:

byte AmmoBytes[3]
我希望这个数组从地址0xXXXXXXX开始;
怎么做?

这是不安全的,但你可以说

byte * AmmoBytes = (byte *) 0xXXXXXXXX;

byte*AmmoBytes=byte*0xXXXXXXXX这是不安全的,但是你可以说


byte*AmmoBytes=byte*0xXXXXXXXX

一般来说,您无法可靠地执行此操作

如果0xXXXXXXX表示硬件地址,则需要编写设备驱动程序以获得对内存的内核访问

如果它是一个正常的内存地址,那么不能保证它映射到一个有效的内存位置,您很可能会使程序崩溃


你到底想在这里做什么?

一般来说,你不能可靠地做到这一点

如果0xXXXXXXX表示硬件地址,则需要编写设备驱动程序以获得对内存的内核访问

如果它是一个正常的内存地址,那么不能保证它映射到一个有效的内存位置,您很可能会使程序崩溃


你到底想在这里做什么?

我将使用常量指针声明内存:


将指针声明为常量有助于编译器检测错误,例如错误地更改指针值而不是指针指向的值

我将使用常量指针声明内存:


将指针声明为常量有助于编译器检测错误,例如错误地更改指针值而不是指针指向的值

许多简单的嵌入式系统不需要内核访问。只需将地址加载到指针中就足够了。许多简单的嵌入式系统不需要内核访问。仅将地址加载到指针中就足够了。仅对于记录,字节*[3]的类型是什么?@ThomasMcLeod:它是指向由3个字节元素组成的数组的指针。因此,在本例中,a是对绑定到内存地址0xDEADBEEF的3个元素字节数组的引用。仅对于记录,字节*[3]的类型是什么?@ThomasMcLeod:它是一个指向3个字节元素数组的指针。那么,在本例中,a是对绑定到内存地址0xDEADBEEF的3个元素字节数组的引用?
byte * const AmmoBytes = (byte * const) 0xFFFF000;