gpt4 book ai didi

c - realloc 和指向 c 结构和函数中的整数比较问题的指针

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

typedef struct 
{
int* data;
unsigned int len;
}intarr_t;

intarr_result_t intarr_push( intarr_t* ia, int val )
{
intarr_t* tmp;
// Warning too few arguments to function ‘realloc’
tmp = realloc(intarr_t, (ia-> len+1)*sizeof *intarr_t); // problem here..
ia = tmp;
ia->data[ia->len+1] = val;
for (eye = 0; eye < 30; eye++)
{
// Warning passing argument 1 ointarr.c:140:17: error: expected expression before ‘intarr_t’
tmp = realloc(intarr_t, (ia->len+1)*sizeof(intarr_t));f ‘free’ makes pointer from
//integer without a cast
free(tmp->data[eye]);
free(tmp);
}
}

我目前尝试编写一个程序来将一个值附加到传递给我的数组上,但无论我做什么,这些小问题似乎都会发生。有人可以向我解释这里的根本问题以及如何解决吗?

我已经尝试了大家的建议,但是我得到了这个错误:

intarr.c:140:17: error: expected expression before ‘intarr_t’
tmp = realloc(intarr_t, (ia->len+1)*sizeof(intarr_t));
^
intarr.c:140:17: error: too few arguments to function ‘realloc’

最佳答案

也许,它应该在下面。

intarr_result_t intarr_push(intarr_t* ia, int val )
{
int *tmp;
tmp = realloc(ia->data, (ia->len+1)* sizeof *ia->data);
if(tmp)
ia->data = tmp;
else {
free(ia->data);
exit(-1);//or return something;
}
ia->data[ia->len++] = val;//update len
return something;
}

关于c - realloc 和指向 c 结构和函数中的整数比较问题的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26897015/

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