【发布时间】:2020-12-06 18:14:57
【问题描述】:
如何将内存地址映射到变量以在该内存位置创建结构?我尝试使用以下代码在给定的内存地址创建一个结构,但它只是转储了分段错误?
代码中的内存位置是一个输入区域,我需要在其中设置某些数据并使用操作码敲响门铃,以便 CPU 获取输入数据并按照操作码对输入区域中的数据执行操作
some_struct* some_struct_obj= (some_struct*)0xc321000000;
memset(some_struct_obj, 0x00, sizeof(some_struct));
【问题讨论】:
-
您不能写入随机地址。
-
我可以将它映射到我的 C++ 代码中的变量吗?
-
不,你不能。所以我问地址来自哪里。如果它是一个特殊的硬件地址,你可以使用它。但是您不能写入随机地址。你怎么知道这个地址是你申请的一部分?
-
在嵌入式软件上,您可以声明特定变量,以便它们指向特殊的设备映射地址。您需要阅读硬件的开发手册,或通过库使用它。您应该使用有关您的平台和用于按门铃的控制器的更多信息来扩展您的问题。
-
如果您在该调用中遇到分段错误,那么您就错了。如果 coredump 发生在其他地方,您需要显示该代码并询问它。
标签: c++