在void函数中返回一个结构指针
Return a struct pointer in void function
我是新的c++编程,刚开始使用结构和指针,我有一个疑问。
我有一个struct和void函数()
struct my_struct
{
int x;
}
void my_function(){
my_struct* x=10
}
我需要返回my_struct* x的值给调用函数。
我看到的大多数返回struct指针的例子都不使用void function(),而是像这样使用
struct my_struct
{
int x;
}
struct my_struct* my_function( int* x){
//assign the value for X and return by assign a reference `&` from caller function
}
所以是不可能从void函数返回一个结构指针,还是我需要使用void指针?请原谅我和帮助我,我是一个新的编程
首先:
void my_function() {
my_struct* x=10
}
是非法的。我认为你没有完全理解指针的含义。要返回一个值,必须:
- 用
my_struct* my_function()
设置返回值 - 或定义哪个外部变量应该存储返回值:
my_struct* my_function(my_struct**);
。
下面是一些使用动态分配的例子:
my_struct* my_function() {
return new my_struct { 10 };
}
或:
void my_function(my_struct** var) {
*var = new my_struct { 10 };
}
如果有意义的话,最好在可能的情况下使用返回值。当需要从单个函数返回多个值时,可以使用第二种方法。
要向调用者报告值而不使用返回类型,可以填充调用者提供的缓冲区。这通常被称为"输出参数"。
void my_function( my_struct** result )
{
my_struct* x = new my_struct{ 10 };
//...
*result = x;
}
相关文章:
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 为什么将一个结构的引用设置为等于另一个结构只会更改一个数据成员?
- 如何将一个结构的字符数组复制到结构的另一个字符数组中?
- 如何将数据从一个结构链接到另一个结构
- 是否可以使用智能指针成员设置具有另一个结构的结构?
- std::transform 将一个结构数组复制到另一个结构数组
- 输入 ctrl + x 后如何再次 cin (cin<<x) 循环(cin 一个结构)
- 如何在级别上打印树,给定一个结构,该结构保存节点的值及其父节点的值,对于树中的每个节点
- 创建一个结构的关联数组,以创建一个缓冲区,供键快速访问
- 如何在另一个结构中初始化结构数组?
- 在另一个结构中声明内部结构会导致错误:结构使用无效
- 我想重置一个C++结构统计,我可以以某种方式使用 stat() 语法吗?
- C++可以输出一个结构的内存地址吗
- 通过 C++ 中的另一个结构成员访问结构
- C++ push_back() 一个结构体到一个向量中
- 难以从另一个结构中的函数返回结构
- 如何将向量添加到结构中以创建一个库存系统,在该系统中,我可以仅使用一个结构向系统添加多种不同的葡萄酒
- 如何制作一个结构程序,在其中可以存储无限量的数据,以便每次您想要时都可以将另一个产品添加到列表中?
- 将一个结构的值复制到另一个结构
- 是否可以在同一未创建的结构内创建一个结构