什么时候需要删除由函数返回的指针

                                          什么时候需要删除由函数返回的指针

                                                                  created by jsjwql http://blog.csdn.net/jsjwql/

最近在做项目的时候,调用了很多第三方的API, 这些API 有很多返回char *, const char *, 有时需要delete 返回的字符串,有时不能,一删则错,晕,这有什么规则吗?

让我们先看看几个例子

// Return Pointer.cpp : Defines the entry point for the console application.

//

 

#include "stdafx.h"

#include "stdlib.h"

#include "string.h"

 

//Array

char* test1()

{

        char p[] = "test";  //静态存储区上,可以被修改,不是堆上,所以不能delete

        return p;

}

 

const char* test2()

{

        const char p[] = "test"; //const变量, 全局数据

        return p;

}

 

char* test3()

{

        static char p[] = "test"; //静态存储区上

        return p;

}

 

//pointer to const

char* test4()

{

        char *p = "test";   //p指向常量字符串,返回字符串指针不能被编辑

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值