鱼C论坛

 找回密码
 立即注册
查看: 3540|回复: 1

[已解决]malloc()总分配不了空间

[复制链接]
发表于 2017-8-31 16:33:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

#include <stdio.h>
#define SIZE  30

struct noname{
        char nowfilled[SIZE];
        int count;
};

typedef struct noname Item;

typedef struct node
{
        Item item;
        struct node* next;
}Node;

typedef Node * List;
List head, pre, current;


List buildchain(void)
{
        char willfilled[SIZE];
        head = NULL;
        puts("请输入第一个节点:\n");
        while (s_gets(willfilled, SIZE) != NULL && willfilled[0] != '\0')                  //变动部分
        {

                current = (List)malloc(sizeof(List));                                 
                if (current == NULL);
                puts("stop\n");
                                                                         //测试时打印了stop
                current->item.count++;
                if (head = NULL)
                        head = current;
                else
                        pre->next = current;

                current->next = NULL;                             
                strcpy(current->item.nowfilled, willfilled);                                  //变动部分
                eatline();
                puts("请输入下一个节点(或输入空行取消):\n");
                pre = current;
        }
        return head;
}

int main(void)
{
                 List now;  
                 now = buildchain( );
}
最佳答案
2017-8-31 16:49:19
current = (List)malloc(sizeof(Node));     我不太清除为什么要用两次转定义,你可以直接在结构体创建的时间,将List加在后面就行了,指针也是可以的··
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-8-31 16:49:19 | 显示全部楼层    本楼为最佳答案   
current = (List)malloc(sizeof(Node));     我不太清除为什么要用两次转定义,你可以直接在结构体创建的时间,将List加在后面就行了,指针也是可以的··
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 11:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表