gpt4 book ai didi

c - 在C语言中如何找到内存地址中包含的内容?

转载 作者:行者123 更新时间:2023-11-30 20:01:52 26 4
gpt4 key购买 nike

我在程序运行期间不断收到以下错误:

First-chance exception at 0xCCCCCCCC in Project1.exe: 0xC0000005: Access violation executing location 0xCCCCCCCC.

我认为这与特定地址无效或为空有关?我只需要知道如何找到 0xCCCCCCCC 中包含的内容以及取代该位置的变量。

我有太多的变量需要抛出并找到每个地址,所以我试图找到一种从地址“向后”到变量的方法,而不是像使用“%p”将变量指向地址所做的那样。

谢谢。

最佳答案

0xCCCCCCCC 是 Microsoft C 运行时的调试版本和 Microsoft C 编译器为调试版本生成的代码使用的魔数(Magic Number)

other magic numbers也是如此。

0xCCCCCCCC 用于标记未初始化的堆栈内存。如果您执行以下操作,您会看到像您所显示的异常:

void test(void)
{
void *p;
memset(p, 0, 100); // Pointer p is used uninitialized
}

您应该注意编译器发出的警告。它很有可能警告您正在做一些愚蠢的事情,但您忽略了该警告。

关于c - 在C语言中如何找到内存地址中包含的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26351098/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com