从C中的结构指针访问指针

从C中的结构指针访问指针,c,embedded,C,Embedded,我试图访问指针结构中指针的地址 下面是我正在尝试的代码。请帮忙 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

我试图访问指针结构中指针的地址

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

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
}

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

您使用的是真正的指针/地址(例如,
0x50
0x1000
0xff
)吗?这是嵌入式系统吗?您如何知道
0x1000
处的内存已被保留以容纳您的结构?是的,这是在嵌入式系统中。我能够在内存中看到它在0x1000地址处存储0x500和0xff
PtrNode->PtrInt=0xff
0xff可能是指向int的无效地址,具体取决于您的硬件。尝试改用0xfc或0x100。是的,我确认结构值存储在地址0x1000,是的,0xff写入PtrNode->PtrIntI'm with@mah。尝试交换0x50和0xff。如果错误也交换,那么问题是由于字寻址限制或内存权限,不允许您将字节写入0xFF