小编Use*_*172的帖子

在struct上使用malloc的c

我正在尝试在名为image的结构上使用malloc.功能是:

void image_init(struct image* img, int w, int h) {
    img = malloc(sizeof(struct image));
    (*img).w = w;
    (*img).h = h;
}
Run Code Online (Sandbox Code Playgroud)

并且再次释放图像的功能是:

void image_destroy(struct image* img) {
    free(img);
}
Run Code Online (Sandbox Code Playgroud)

但每当我试图释放malloc-ed数据时,我都会收到错误,即我试图释放的地址之前没有进行过malloc-ed.

图像结构是:

struct image {
    int w,h;
    int* data;
}
Run Code Online (Sandbox Code Playgroud)

我用以下函数调用函数:

struct image img;
image_init(&img,100,100);
image_destroy(&img);
Run Code Online (Sandbox Code Playgroud)

c malloc free struct pointers

0
推荐指数
1
解决办法
146
查看次数

标签 统计

c ×1

free ×1

malloc ×1

pointers ×1

struct ×1