无法使用指针为结构创建动态数组

时间:2018-01-01 21:25:27

标签: c pointers dynamic-arrays

我有一个结构Person,有一个名字,id和孩子的数量。 我正在尝试为名字,id和孩子的数量创建一个动态数组。继续收到错误“未初始化的本地变量'名称'使用”

        Person *person;
        printf("Add a person to the game? (0|1)");
        scanf("%c",&dummy);
        scanf("%d",&input);
        while (input == 1)
        {

            person->name =(char*)malloc(strlen(arr));
            if (person->name == NULL)
                return NULL;
            person->id = (int*)malloc(ID*sizeof(int));
            if (person->id == NULL)
                return NULL;
            person->kids = (char*)malloc(kidNum * sizeof(char*));
        }

1 个答案:

答案 0 :(得分:2)

我不是C专家,但看到你的代码似乎你正在创建一个指向结构的指针,然后你的指针没有被初始化为任何东西。这可能是您遇到问题的原因。我不确定正确的语法,但试试这个:

Person* person = malloc(sizeof(Person));