小编Jac*_*son的帖子

C 中释放结构体的函数

我遇到一个问题,当我调用我编写的用于释放结构的函数时,我的程序在第一个释放指令处终止。

这是函数:

void deleteJobNode(struct jobNode *node) {
    free(node->burstTime);
    free(node->jobIndex);
    free(node->next);
    free(node->priority);
    free(node->remainingTime);
    free(node);
}
Run Code Online (Sandbox Code Playgroud)

这是结构体的定义以及用于为结构体分配内存的函数。

struct jobNode {
    struct jobNode *next;
    int jobIndex;
    int burstTime;
    int remainingTime;
    int priority;
};

struct jobNode *createJobNode(int newJobIndex, int newBurstTime, int newRemainingTime, int newPriority) {
    struct jobNode *newNode = (struct jobNode *)malloc(sizeof(struct jobNode));
    newNode->jobIndex = newJobIndex;
    newNode->burstTime = newBurstTime;
    newNode->remainingTime = newRemainingTime;
    newNode->priority = newPriority;

    if(newNode == NULL)
        printf("Node Creation Error");

    return newNode;
}
Run Code Online (Sandbox Code Playgroud)

我已经按照建议编辑了免费功能:

void deleteJobNode(struct jobNode *node) {
    free(node);
}
Run Code Online (Sandbox Code Playgroud)

但是我在运行时收到此错误:

*** …
Run Code Online (Sandbox Code Playgroud)

c malloc free struct memory-management

2
推荐指数
1
解决办法
8944
查看次数

标签 统计

c ×1

free ×1

malloc ×1

memory-management ×1

struct ×1