我用C++定义了几个带指针的结构体,使用时出现了如下报错。请问能不能帮我看一下问题在哪里。非常感谢。

2025-02-27 07:32:55
推荐回答(2个)
回答1:

我没仔细的去看你的程序逻辑,但从结构体声明和定义来看,是有问题的。

struct POINT3D 
{
    float x;
    float y;
    float z;
};

这么一个结构体,本身没有错误。要定义变量,应该是  

struct POINT3D  abc;

而不应该省略掉其中的struct关键字。你可以看一下,你所有的结构体定义都是这个错误。如果真想省略struct关键字,那么你的结构体声明就不能这么写,可以写成下面这样。

typedef struct 
{
    float x;
    float y;
    float z;
} POINT3D ;

这样,在定义变量时就可以直接使用 POINT3D  abc;   来定义了。先把这个问题解决了,再往下进行吧。

回答2:

POINT3D *p_pnt[3];
TRIANGLE *p_tri[100];

这两个相当于二级指针了,需要new一下,用堆分配内存。现在有事情,晚点再调试一下。

比如下面

PART Tool[10];
for(int i = 0; i < 10; i++)
{
    for(int j = 0; j < 100; j++)
    {
        Tool->p_tri[j] = new int;
    }
}

而且你的using namespace std;呢?