gpt4 book ai didi

创建一个初始化结构并返回指针的 C 函数

转载 作者:行者123 更新时间:2023-12-04 04:30:22 24 4
gpt4 key购买 nike

我正在学习 C,并且正在尝试执行以下操作:

  • 从函数创建结构
  • 返回指向新创建的指针

表的类型定义:typedef char table [8][8];

所以,我创建了这个函数:

table* create_table() {
table o;
return &o;
}

但是我从编译器那里得到一个错误,说我正在返回一个局部变量的地址。

如何从函数创建一个,然后返回指针。

最佳答案

您不能返回局部变量的地址,因为地址在函数 (create_table) 返回时变得无效,相反,您应该在堆上创建它:

table* create_table() 
{
table * o;
o = malloc(sizeof(table));
// Edit - added initialization if allocation succeeded.
if (o != NULL)
{
memset(o, 0, sizeof(table));
}
return o;
}

关于创建一个初始化结构并返回指针的 C 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10601960/

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