gpt4 book ai didi

c - 对函数中从 typedef 创建的变量使用 malloc

转载 作者:行者123 更新时间:2023-11-30 18:40:15 27 4
gpt4 key购买 nike

我想创建一个初始大小为 len 的新 intarr_t,但我从未使用 typedef 处理过此类问题” ed 变量。

我的问题是,intarr_create() 应该分配数组空间,然后在 malloc 成功时返回指向它的指针,如果失败则返回指向 NULL 的指针。我该如何解决这个问题?

还有,为什么函数里有*符号?

这是我的代码:

#include <stdio.h>

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

intarr_t* intarr_create(unsigned int len) {
//intarr_t with initial size len
intarr_t = (int *) malloc(len); // not working here, can someone explain why?
if(intarr_t != NULL) {
return intarr_t;
} else {
return NULL;
}
}

int main() {
int len = 15;
int h = intarr_create(len);
printf("%d\n", h);
return 0;
}

最佳答案

它不起作用,因为您没有给变量命名。另外,int*intarr_t 不是同一类型,因此除非更改强制类型转换,否则会出现类型不匹配的情况。

关于c - 对函数中从 typedef 创建的变量使用 malloc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26765331/

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