请问各位下面这段代码指针这样用,有问题吗
#include <iostream>
using namespace std;
void func(int *param)
{
int *n = param;
*n = 20;
cout << *n << endl;
delete n;
}
int main()
{
int *a = new int;
*a = 10;
func(a);
getchar();
}
单就你的程序没问题。但是要知道,如果func不是你写的,而是你的同事写的,那么它会delete传进来的参数,这是不符合直觉的。容易给你挖坑。
一般我们建议,谁申请谁释放,申请释放的代码要配对,这样比较好。
没看出什么问题,不过也没看出有什么用。
没有问题吧,你想实现什么功能呢?
可以 释放出来 空间 一看就是严谨的人
方法里为什么要把传进来的指针删除,这样会把作为参数的指针删除的.
给一个建议,一个函数就做一件事
删除之类的其他操作,可以单独写一个函数进行
new 的对象和 delete对象不是一个
程序应该没问题,关键看你有什么需求.
最主要的地方就是你的指针分配和释放在不同的函数中,这样给调用者比较麻烦,应该把分配和释放地方要统一起来,这个可以参考C++的RAII机制
单就你的程序没问题。但是要知道,如果func不是你写的,而是你的同事写的,那么它会delete传进来的参数,这是不符合直觉的。容易给你挖坑。
一般我们建议,谁申请谁释放,申请释放的代码要配对,这样比较好。