【问题标题】:Bad Pointer in Structure variable initialization结构变量初始化中的错误指针
【发布时间】:2010-12-30 08:16:32
【问题描述】:

我有一个结构,我正在尝试使用一些地址进行初始化。 我收到错误指针的运行时错误。基本上地址没有正确存储。

typedef struct    
{

   Uint8      *pInAddr[2];         

}structtest2_t;  


typedef struct    
{              

   structtest2_t  structtest2[2]; 

}structtest_t;

structtest_t  structtest;

我尝试如下初始化:

structtest.structtest2[0].pInAddr[0]=(uint8*)(someaddress);

我没有得到编译错误,但是当我看到值时指针错误。

请帮忙

谢谢

【问题讨论】:

  • 可能某个地址不正确或未正确使用。或者您的程序可能无意中访问了未初始化的 structtext.structtest2[1]。

标签: pointers structure


【解决方案1】:

你可能需要改变:

structtest.structtest2[0]=(uint8*)(someaddress);

到:

structtest.structtest2[0].pInAddr[0]=(uint8*)(someaddress);

我很惊讶您的代码没有收到编译器警告 - 您使用的是 gcc -Wall 还是等效的?

【讨论】:

  • 嗨,这是我的打字错误。实际代码与您建议的形式相同。我存储了错误的地址,它在监视窗口中给出了错误的指针消息。我正在使用 MSVC 编译器。请帮助
  • @user437777:您需要复制并粘贴实际代码,而不是输入近似值。 someaddress 是什么值,您在 structtest.structtest2[0].pInAddr[0] 中看到了什么值?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-01
  • 1970-01-01
  • 2019-02-14
  • 1970-01-01
相关资源
最近更新 更多