gpt4 book ai didi

c - 给struct中的ptr赋值(C)

转载 作者:太空宇宙 更新时间:2023-11-04 02:11:30 27 4
gpt4 key购买 nike

我已经在我的 .h 文件中声明了一个结构,如下所示:

struct node{
char* string;
}

我打算创建一个结构,例如,有一个成员,一个名为 string 的字符指针。

现在,我计算出字符串的长度,并 malloc 一个适当大小的数组,并以此作为输入。

char* test;
test = (char*) malloc( n * sizeof(char) );

据我所知,这已经创建了字符指针测试,并已将其指定为指向我刚刚 malloc 的数组的头部。然后我继续将每个数组槽分配给用户输入的字符,然后我读回它 - 这一切都可以正常编译和工作。当我尝试将此字符指针分配给传入此结构的结构节点中的字符指针时,我的问题就来了,如:

int f1( struct node* new ){

所以我尝试将结构中的指针分配给指向数组的指针的值,如下所示:

new->string = test;

但是我有段错误。

对我来说,这似乎是我将一个 char* 分配给需要 char* 的东西,所以这应该可以正常工作……我可能遗漏了一些愚蠢的东西,但是有人能给我指明方向吗?非常感谢!

最佳答案

检查 f1() 的调用方并确保您的参数有效

这会起作用:

struct node *you = malloc(sizeof(struct node));
if (you)
{
f1(you);
free(you);
}

这也是:

struct node me;
f1(&me);

这行不通

struct node *me;
int f1(me);

关于c - 给struct中的ptr赋值(C),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13406657/

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