Struct指针中的C动态内存分配

时间:2020-06-14 10:25:47

标签: c pointers struct dynamic-memory-allocation

我不熟悉C语言,并且正在执行与C语言结构指针有关的任务。我必须按date((yyyyMMdd) time(hhmm) name(title) importance(1~10) content.的顺序输入,必须按date (yyyy.MM.dd.) time (hh:mm) importance content.的顺序输出 这是我的代码此代码在第27,28行生成C4047,C4024错误。如果我忽略该错误消息并对其进行调试,则会出现“ wntdll.pdb未加载”错误。我该怎么办?

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct Calender
{
    int day, time;
    int imt; //importance
    char tle[127]; //title
    char cnt[127]; //contents
};
void input_calender()
{
    char title[127];
    char contents[127];
    struct Calender* a = malloc(sizeof(struct Calender));
    scanf("%d", &(a->day));
    scanf("%d", &(a->time));
    scanf("%d", &(a->imt));
    scanf("%hhd", &title);
    scanf("%hhd", &contents);

    a->day = 8;
    a->time = 4;
    a->imt = 1;
    strcpy(a->tle, &title);
    strcpy(a->cnt, &contents);

    free(a);
}
void print_calender(struct Calender* a)
{
    int i;
    for (i = 0; i < 8; i++)
    {
        if (i == 4 || i == 6)
            printf(".");
        printf("%c", ((a->day) + i));
    }
    printf(" ");
    for (i = 0; i < 4; i++)
    {
        if (i == 2)
            printf(":");
        printf("%c", ((a->time) + i));
    }
    printf(" ");

    printf("%d ", a->imt);
    printf("%s ", a->tle);
    printf("%s\n ", a->cnt);
}
int main(void) {
    int num=0;
    int i;
    struct Calender* p = malloc(sizeof(struct Calender) * (num + 1));
    scanf("%d", &num);
    //입력 
    for (i = 0; i < num; i++)
    {
        input_calender(p + i);
    }
    //출력 
    for (i = 0; i < num; i++)
    {
        print_calender(p + i);
    }
    free(p);

} ```


0 个答案:

没有答案
相关问题