【发布时间】:2012-09-09 21:16:46
【问题描述】:
所以我正在编写一段代码,它应该使用指向结构的指针表;在这里你有那个结构类型
#define liczbafunkcji 5
#define wielkosclasu 0
typedef struct drzewo typ;
struct drzewo {
typ *right;
typ *left;
typ *up;
char znak;
unsigned int instrukcje;
unsigned int opcje;
float value;
};
typ * t[wielkosclasu][rozmiar];
这里有一个分配函数
void przydziel(void)
{
int i,g;
for(i=0;i<wielkosclasu;i++)
{
for(g=0;g<rozmiar;i++)
{
t[i][g]=(typ*)malloc(sizeof(typ));
}
}
}
所以当我做这样的事情时 (*t[numerdrzewa][0]).up=NULL; 它带有“ SIGSEGV,分段错误”。 (用gdb检查)在那一行,我不确定出了什么问题。
【问题讨论】:
-
您知道,
t[numerdrzewa][0]->up的工作方式与您到达那里的方式相同,不需要额外的括号。作为更一般的情况,(*ptr).something等价于ptr->something。 -
像
typ * t[0][rozmiar];这样的东西永远不应该编译,C 不允许数组为空。所以你没有向我们展示到底发生了什么。
标签: c pointers dynamic malloc structure