Code Bye

关于结构体嵌套的问题

 

我的代码是这样

typedef struct{
    int x;
    int y;
}PeakData;

typedef struct{
	int label; 
	int peakCount: 
	struct PeakData* peaks;
}MaterialData;

但是报错
error C2226: 语法错误 : 意外的“PeakData”类型
error C2238: 意外的标记位于“;”之前
不知道应该怎么写?
另外如果定义MaterialData* data; 那么m=data[i].peaks[j].x这个表达式对吗
菜鸟求教 = =

修改如下:
typedef struct{
    int x;
    int y;
}PeakData;
typedef struct{
    int label; 
    int peakCount: 
    //struct PeakData* peaks;  //去掉struct
    PeakData* peaks;
}MaterialData;

m=data[i].peaks[j].x    //这个用法没问题

引用 1 楼 zhangxiangDavaid 的回复:

修改如下:

typedef struct{
    int x;
    int y;
}PeakData;
typedef struct{
    int label; 
    int peakCount: 
    //struct PeakData* peaks;  //去掉struct
    PeakData* peaks;
}MaterialData;

m=data[i].peaks[j].x    //这个用法没问题

多谢   其实之前没问题 struct是刚加的,之前问题出在peakCount;打成了:

20分
1、第8行末尾的冒号改成分号;
2、第9行的开头,去掉struct;

更正代码如下:

typedef struct {
        int   x;
        int   y;
 } PeakData;

typedef struct {
        int   label;
        int   peakCount;
        PeakData  *peaks;
} MaterialData; 

楼主试试?

typedef struct {
        int   label;
        int   peakCount;
        struct tag_PeakData {
            int   x;
            int   y;
        } PeakData;
} MaterialData;

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于结构体嵌套的问题