hfmnode *ht = (hfmnode *)malloc(16*sizeof(hfmnode));
//printf("%d", sizeof(*ht);
for (int i = 0; i < 2 * n; i++) {
ht[i].weight = 0;
ht[i].lchild = 0;
ht[i].rchild = 0;
ht[i].perant = 0;
}
我用malloc函数构造一个大小为16个hfmnode结构体的数组,但是后面赋值的时候只有一个结构体。
#include <stdio.h>
#include<stdlib.h>
int main(){
typedef struct
{
int weight;
int lchild;
int rchild;
int perant;
}hfmnode;
int n=1;
hfmnode *ht = (hfmnode )malloc(16sizeof(hfmnode));
/*printf("%d", sizeof(ht);/
for (int i = 0; i < (2 * n); i++) {
ht[i].weight = 0;
ht[i].lchild = 0;
ht[i].rchild = 0;
ht[i].perant = 0;
}
for (int i = 0; i < 2 * n; i++)
{
printf("%d,%d,%d,%d\n",ht[i].weight,ht[i].lchild,ht[i].rchild,ht[i].perant);
}
return 0;
}
我为你的代码做了补充,发现应该是没有错误的。如果你的依旧出错的话,就把我的给写上吧