gpt4 book ai didi

c - 在另一个 .c 文件的函数中使用函数?

转载 作者:太空宇宙 更新时间:2023-11-04 08:46:01 25 4
gpt4 key购买 nike

我正在尝试通过另一个函数更改数组的大小。代码编译但程序崩溃......我卡住了,非常卡住了。新来的,我的头在左上右下旋转aaaaah.......

数组.c

struct array {
int* data;
int size;
};

struct array* array_create()
{
struct array* array = (struct array*) malloc(sizeof(struct array));
array->data = (int*) malloc(sizeof(int) * 10000);
array->size = 10000;
return array;
}

void array_resize(struct array* array, int size)
{
if (size > array->size) {
free(array);
array->data = (int*) malloc(sizeof(int) * size);
}

array->size = size;
}

int array_size(struct array* array)
{
return array->size;
}

数组.h

typedef struct array* ARRAY;

ARRAY array_create();
void array_resize(struct array* array, int size);

edit.c

void edit()
{
array_resize(array, 100); // I can run the code but program crashes
}

ma​​in.c

ARRAY array;
array = array_create();
edit(); // Program crashes

最佳答案

    free(array);
array->data = (int*) malloc(sizeof(int) * size);

在这里您释放了数组,并在下一行 取消引用它。那是未定义的行为。但似乎是你崩溃的原因。

关于c - 在另一个 .c 文件的函数中使用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21661928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com