1

我正在尝试访问指针结构内的指针地址。

下面是我正在尝试的代码。请帮忙。

struct NODE
{
    int Data;
    int *PtrInt;

} NODE_1, *PtrNode;

int main(void)
{
    NODE_1.Data = 100;
    NODE_1.PtrInt = 0x50;
    *(NODE_1.PtrInt) = 0x110;   // i am able to access pointer from structure here

    PtrNode = 0x1000;
    PtrNode->Data = 0x500;
    PtrNode->PtrInt = 0xff;
    *(PtrNode->PtrInt) = 0xcc;  // but i am not able to access to pointer from structure
                                // pointer
}
4

1 回答 1

3

通过评论中的对话确认:问题是您正在设置一个指向地址的指针0xff,然后尝试在那里写入/读取一个整数。您的硬件不允许在未对齐的内存地址(例如 0xff)上访问整数值;使用有效(根据您的硬件)对齐的地址,您会没事的。

于 2013-11-13T17:24:38.103 回答