c语言中void如何输出,c – 如何打印void指针指向的变量

该代码示例展示了在C++中如何根据条件动态分配int、double和char类型的内存,并通过指针返回。在main函数中,这些动态分配的内存被正确地释放,避免了内存泄漏。该代码强调了动态内存管理的重要性以及使用后及时释放资源的实践。
摘要由CSDN通过智能技术生成

param是一个自动变量.您不能将其退回并在其范围之外使用它.

param仅存在于func中,如果返回,结果为Undefined Behavior.

要修复它,您可以:

>动态地在堆上分配param.执行此操作后,您可以安全地返回参数地址,但您必须记住在不需要它时将其释放.

这是对代码的更正

#include

#include

#include

using namespace std;

void * func(int a)

{

if (a == 1)

{

int *param = new int(5);

return param;

}

else if (a == 2)

{

double *param = new double(5.5);

return param;

}

else if (a == 3)

{

char *param = new char[50];

strcpy(param, "test");

return param;

}

return nullptr;

}

int main()

{

int *ptr = (int*)func(1);

cout << *ptr << std::endl; // print the int value

delete ptr;

double *ptr2 = (double*)func(2);

cout << *ptr2 << std::endl; // print the double value

delete ptr2;

char *ptr3 = (char*)func(3);

cout << ptr3 << std::endl; // print the string

delete[] ptr3;

getchar();

return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值