【发布时间】:2012-03-11 11:46:21
【问题描述】:
我想将一些值(例如 2345)分配给内存位置(例如 0X12AED567)。这个可以吗?
也就是说,如何实现以下功能?
void AssignValToPointer(uint32_t pointer, int value)
{
}
【问题讨论】:
-
*(int*)0x12AED567 = 2345但你最好知道你在做什么...... -
除非您确定内存未使用,否则最好不要尝试
-
不仅不能将内存用于任何其他目的,而且还必须进行映射。至少在 *nix 上,如果您尝试写入未映射的页面,您的应用程序会出现段错误并崩溃。
-
@jweyrich 他们赞成它,因为他们是桌面程序员。
-
@Mysticial 帖子对我来说似乎很好。在桌面应用程序中几乎没有听说过像这样的显式内存位置,但对于具有内存映射外围寄存器的 uController 来说几乎是必需的。因此,如果您阅读了冗长的用户手册并理解了晦涩难懂的外设寄存器内容,那么您就会知道自己在做什么(有时,无论如何)。