2 wh230308 wh230308 于 2015.05.25 11:22 提问

关于c++指针使用问题,这样有问题吗
c++

请问各位下面这段代码指针这样用,有问题吗

 #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();
}

9个回答

devmiao
devmiao   Ds   Rxr 2015.05.25 11:25
已采纳

单就你的程序没问题。但是要知道,如果func不是你写的,而是你的同事写的,那么它会delete传进来的参数,这是不符合直觉的。容易给你挖坑。
一般我们建议,谁申请谁释放,申请释放的代码要配对,这样比较好。

wh230308
wh230308 谢谢您的回答。
接近 3 年之前 回复
wsh1992o
wsh1992o   Rxr 2015.05.25 12:02

方法里为什么要把传进来的指针删除,这样会把作为参数的指针删除的.
给一个建议,一个函数就做一件事
删除之类的其他操作,可以单独写一个函数进行

a1193561652
a1193561652   Rxr 2015.05.25 11:30

没看出什么问题,不过也没看出有什么用。

wwwwxrwxr
wwwwxrwxr   2015.05.25 11:52

没有问题吧,你想实现什么功能呢?

qq_28435665
qq_28435665   2015.05.25 11:54

可以 释放出来 空间 一看就是严谨的人

han_gaara
han_gaara   2015.05.25 12:08

new 的对象和 delete对象不是一个

mini_Pinocchio
mini_Pinocchio   2015.05.25 12:09

程序应该没问题,关键看你有什么需求.

oyljerry
oyljerry   Ds   Rxr 2015.05.25 12:09

最主要的地方就是你的指针分配和释放在不同的函数中,这样给调用者比较麻烦,应该把分配和释放地方要统一起来,这个可以参考C++的RAII机制

xy707707
xy707707   2015.05.27 17:25

单就你的程序没问题。但是要知道,如果func不是你写的,而是你的同事写的,那么它会delete传进来的参数,这是不符合直觉的。容易给你挖坑。
一般我们建议,谁申请谁释放,申请释放的代码要配对,这样比较好。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!