几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量

几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 (http://www.dimcax.com/hust/index.php)
-   ObjectARX(C++) (http://www.dimcax.com/hust/forumdisplay.php?f=34)
-   -   【转帖】求助:未处理的异常c0000005 (http://www.dimcax.com/hust/showthread.php?t=7878)

yang686526 2009-04-18 05:21 PM

【转帖】求助:未处理的异常c0000005
 
求助:未处理的异常c0000005
求助:未处理的异常c0000005
typedef struct datafield_string
{
char *fieldname;
char *fieldval;

};
typedef struct datafield_double
{
char *fieldname;
double fieldval;

};
typedef struct datafield_long
{
char *fieldname;
long fieldval;

};
typedef struct pipeextentiondata
{
datafield_string pipetype;
datafield_string dn;
datafield_double d;
datafield_double b;
datafield_double high;
datafield_double length;
datafield_long index;

};

//数据初始化
pipeextentiondata pipedata=
{
{"管道类型","焊接钢管"},
{"公称直径","dn20"},
{"管道外径",0.0},
{"管道壁厚",0.0},
{"管道标高",0.0},
{"管段长度",0.0},
{"管段编号",1}
};

acedgetstring(0,"\n管道类型:",pipedata.pipetype.fieldval);
acutprintf("\n管道类型:%s",pipedata.pipetype.fieldval);
以上代码编译通过,运行时输入后出错,错误提示:“未处理的异常c0000005(access violation writing 0x182b174),地址:77c17ad8h”
请高手指教该如何解决,谢谢!!!
以上代码简化为如下代码,编译通过,错误依旧
char *abc;
acedgetstring(0,"\n管道类型:",abc);
char abc[256]="";
acedgetstring(0,"\n管道类型:",abc);
acedgetstring()需要一个分配过内存初始化过的char*,函数内部不负责分配内存,而是直接赋值,给一个未经初始化的无效指针赋值,当然会出错了
问题解决谢谢高手指点


所有的时间均为北京时间。 现在的时间是 07:05 AM.