所以我正在尝试制作一系列链表,起初我有以下代码:
typedef struct node{
int data;
struct node *next;
} node;
struct ko {
struct node *first;
struct node *last;
} ;
struct ko array[6];
使用此代码,程序的其余部分运行正常,但是,我希望用户能够在程序启动时定义数组大小,经过一些研究后我认为它应该是这样的:
.h文件
typedef struct node{
int data;
struct node *next;
} node;
struct ko {
struct node *first;
struct node *last;
} ;
struct ko *array;
main.c文件:
int size;
printf("array size: ");
scanf("%d", &size);
array = malloc(sizeof(struct ko) * size);
使用这段代码,程序编译得很好,但它只是在运行时卡住,它不会崩溃,它只是没有做任何事情......所以我想知道问题是否在这段代码中,或者该计划的其他地方.. 谢谢
答案 0 :(得分:0)
这里没有什么是错误的......只需确保对数组内容进行零初始化(实际上100%可移植的方式是for
循环,但使用calloc()
可以解决所有问题通常的平台)。
答案 1 :(得分:0)
程序中只有一个错误,malloc返回void *,你需要输入case(struct ko *)。除此之外,我没有看到任何错误。我也检查了VS中的相同程序。它工作正常。