C++不同函数内delete的问题

在函数point中用new分配了一个动态字符数组,返回指向这个数组的指针,然后在main函数中赋给指针name,那怎么样在使用完name后用delete删除这个动态空间呢?图片图片

c++
1

10个回答

首先这种写法也是没有问题的,系统自己的API都有这种类似的调用,比如编码转换函数MultiByteToWideChar(), 就需要在外部释放空间。
对于数组的释放应该选用delete[],希望对你有帮助。

1
qq_35640156
qq_35640156 感谢~
2 年多之前 回复

尼玛这图片是怎么上去的,请大家忽视第一张图。

0

先说一下delete。delete关键字操作之后,只是告诉内核回收这片内存。但是new出来的堆区指针存在,还是指向这片内存区。但是这片内存区有可能在程序运行期间,被其他数据占用,那么这时这块数据区相对于原来来说,已经是垃圾数据。
这个问题可以直接在主函数内完成。但是一般不会这么做,会有专门的回收机制。要么就是运行结束,会自动释放

0
u013456079
tiger_future 回复qq_35640156: 可以
2 年多之前 回复
qq_35640156
qq_35640156 就是说不用在主函数中使用delete释放内存是吗?
2 年多之前 回复

函数的传入就传入引用,然后main函数里面去delete

0

char* name = point();//干嘛还在point()之前加char* 返回值 已经是char* 不需要强制类型转换
delete name;//delete[] name; 二者都可以。用delete name比较合适

0
qq_35640156
qq_35640156 是在主函数里新声明一个指针name,然后初始化为函数point的返回值
2 年多之前 回复

一般来说new对应delete,new []对应delte [],因为代码中使用了char* ps = new char[10]; 所以用delete[] name会更合适一点,但由于基本类型数组两个可以混用,不过还是不推荐这样用,因为类对象数组只能用delete对应new,delte[]对应new[],还是养成良好的编程习惯比较好

0

应该用delete[],更好的做法是再提供一个释放函数来对应。

0

对于单变量分配内存时用new、删除内存时delete,对于数组用new[ ]和delete[ ]

0

new ... delete
new ..[] delete []对应的

0
  1. main() 括号没有写;
  2. 没有使用new申请, 自己定义的name指针是系统分配的,在栈上,不需要释放;
  3. new 与 delete 成对出现;
  4. mian() 和 point() 函数里的 指针不是同一个,函数内部的变化不能直接返回,应该使用**二级指针;
-1
u011491972
icesongqiang 回复qq_35640156: 变量的生存区域限制,你使用一级指针是传不回去的
2 年多之前 回复
qq_35640156
qq_35640156 不能直接返回一个指针吗?
2 年多之前 回复
u011491972
icesongqiang main() 和 point() 函数里的 指针不是同一个,函数内部的变化不能直接返回,应该使用**二级指针;
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
内点法求解凸二次规划
COPL_QP是一个可用的凸二次规划实验的解。这个软件包试图解决线性约束凸二次规划。源代码用C语言编写,附带用户指南(postscript文件)和问题实例
如何用route add同时上内外网
用route add实现同时上内外网,带截图,实现简单,配置容易,请多多指教,多谢。
惩罚函数法C语言相关程序
惩罚函数法C程序,程序已运行,正确可靠,对初学者有很大帮助
内点法Matlab
内点法,解决凸优化问题
MATLAB的梯度法,内点法,外点法,罚函数,惩罚函数
MATLAB的梯度法,内点法,外点法,罚函数,惩罚函数,线性梯度法,源程序,按照提示输入,可直接运行-MATLAB' s gradient method, interior point method, outside the point of law, penalty function, penalty function, the linear gradient method, source code, follow the prompts to input, can be directly run
C语言程序设计期中试题_2003.4
C语言程序设计期中试题 (2003年4月) 班级___________ 学号 _____________ 姓名______________ 成绩 _______________ 一、选择题(每空2分,共50分)。对每一个【 】,从A)、B)、C)、D)四个供选择的答案中,选出一个正确的答案。 1、C语言程序由函数组成。它的【B 】。 A) 主函数必须在其他函数之前,函数内可以嵌套定义函数 B) 主函数可以在其他函数之后,函数内不可以嵌套定义函数 C) 主函数必须在其他函数之前,函数内不可以嵌套定义函数 D) 主函数必须在其他函数之后,函数内可以嵌套定义函数 2、若有定义:int k=7; float a=2.5 , b= 4.7; 则表达式 a + k % 3 * (int)(a+b)%2/4 的值是【 B 】。 A)2.500000 B)2.750000 C)3.500000 D)0.000000
MATLAB 内点惩罚函数法优化设计
MATLAB上实现内点惩罚函数法进行优化,有兴趣的有需要的可以学习学习
内点法程序
用C语言编写的内点罚函数法程序,适合于求解非线性规划问题
C语言也能面向对象(二)——new和delete
详见:blog.csdn.net/wormsun
从问题到程序-程序设计与C语言引论 pdf
国内最经典最通俗易懂的c语言教程,值得学习! 前言 本书作者简介 第1章 程序设计和C语言 1 1.1程序和程序语言 1 1.2 C语言简介 8 1.3一个简单的C程序 1O 1.4程序开发过程 13 1.5问题与程序设计 17 本章讨论的重要概念 18 练习 18 第2章 数据对象与计算 21 2.1基本字符、名字表示、标识符和关键字 21 2.2数据与类型 23 2.3基本类型与数据表示 23 2.3.1整数类型和整数的表示 23 2.3.2实数类型和实数的表示 25 2.3.3字符类型和字符的表示 26 2.3.4数据的外部表示、内部表示与转换 27 2.4运算符、表达式与计算 3O 2.4.1算术运算符 3O 2.4.2算术表达式 31 2.4.3表达式的求值 32 2.4.4计算和类型 34 2.5数学函数库及其使用 37 2.5.1函数、函数调用 37 2.5.2数学函数及其使用 38 2.5.3函数调用中的类型转换 39 问题解释 40 几个常用程序模式 40 本章讨论的重要概念 41 练习 41 第3章 变量、函数和控制结构 43 3.1语句、复合结构 43 3.2变量——概念、定义和使用 44 3.2.1变量的定义 45 3.2.2变量的赋值与取值 46 3.2.3几个问题 48 3.3定义函数(初步) 50 3.3.1函数定义 52 3.3.2函数和程序 55 3.3.3函数与类型 56 3.3.4自定义输出函数 57 3.4关系表达式、逻辑表达式、条件表达式 58 3.4.1关系表达式和条件表达式 58 3.4.2逻辑表达式 60 3.5语句与控制结构 61 3.5.1条件语句(if语句) 62 3.5.2循环语句(1):while语句 65 3.5.3循环语句(2):for语句 68 3.6若干常用结构和问题 70 3.6.1增量和减量运算符(+;、~) 70 3.6.2逗号运算符 71 3.6.3实现二元运算符操作的赋值运算符 71 3.6.4空语句 72 3.6.5表达式和求值 73 问题解释 74 几个常用程序模式 74 本章讨论的重要概念 75 练习 75 第4章 基本程序设计技术 79 4.1循环程序设计 79 4.1.1基本循环方式 8O 4.1.2求一系列完全平方数 81 4.1.3判断素数(谓词函数) 82 4.1.4艰难的旅程(浮点误差) 83 4.1.5求立方根(迭代和逼进) 85 4.1.6求sin函数值(通项计算) 86 4.2循环程序的问题 87 4.2.1从循环中退出 87 4.2.2循环中的几种变量 89 4.3循环与递归 9O 4.3.1阶乘和乘幂(循环,递归) 9O 4.3.2 Fibonacci序列(计算与时间) 93 4.3.3为计算过程计时 94 4.3.4 Fibonacci序列的迭代计算(程序正确性与循环不变式) 95 4.3.5最大公约数 97 4.3.6河内塔(梵塔)问题 100 4.4基本输入输出 102 4.4.1格式输入函数scanf 102 4.4.2字符输入输出函数 109 4.4.3输入函数的返回值及其作用 112 4.5控制结构和控制语句 114 4.5.1 do-while循环结构 114 4.5.2流程控制语句 115 4.5.3开关语句 117 4.6程序设计实例 119 4.6.1一个简单计算器 119 4.6.2定义枚举常量 119 4.6.3单词计数问题 120 4.7程序测试和排错 123 4.7.1测试 123 4.7.2白箱测试 124 4.7.3黑箱测试 125 4.7.4排除程序里的错误 126 问题解释 127 几个常用程序模式 128 本章讨论的重要概念 128 练习 128 第5章 C程序结构 133 5.1数值类型 133 5.1.1实数类型和整数类型 133 5.1.2字符类型 133 5.1.3整数类型 134 5.1.4基本数据类型的选择 135 5.2函数和标准库函数 136 5.2.1C语言的库函数 137 5.2.2字符分类函数 137 5.2.3随机数生成函数 138 5.3函数定义和程序的函数分解 l39 5.3.1主函数 140 5.3.2程序的函数分解 141 5.3.3对函数的两种观点 142 5.3.4函数原型 146 5.4 C程序结构与变量 149 5.4.1外部定义的变量 150 5.4.2作用域与生存期 151 5.4.3外部变量和自动变量 151 5.4.4变量定义的嵌套 153 5.4.5静态局部变量 154 5.4.6变量的其他问题 155 5.4.7一个实例 l57 5.5预处理 159 5.5.1文件包含命令 159 5.5.2宏定义与宏替换 160 5.5.3条件编译命令 163 5.6定义常量 164 5.7字位运算符 165 5.8编程实例 168 5.8.1一个简单的猜数游戏 168 5.8.2加密与解密 170 本章讨论的重要概念 172 练习 l72 第6章 数组 175 6.1数组的概念、定义和使用 175 6.1.1定义数组变量 176 6.1.2数组的使用 177 6.1.3数组的初始化 179 6.1.4数组的存储实现 180 6.2数组程序实例 181 6.2.1从字符到下标 181 6.2.2筛法求素数 182 6.2.3成绩分类 183 6.2.4多项式求值 184 6.2.5定义数组的问题 185 6.3数组作为函数参数 186 6.3.1一个例子 186 6.3.2修改实参数组的元素 188 6.4字符数组与字符串 189 6.4.1字符数组 189 6.4.2字符串 189 6.4.3程序实例 191 6.4.4标准库字符串处理函数 193 6.4.5输出文本里的最长行 194 6.5两维和多维数组 198 6.5.1多维数组的初始化 198 6.5.2多维数组的表示和使用 199 6.5.3多维数组作为函数的参数 200 6.6编程实例 201 6.6.1成绩直方图 201 6.6.2一个通用带检查的整数输入函数 205 6.6.3 “计算”数组变量的大小 206 6.6.4统计c程序里的关键字 208 6.6.5数组的划分 211 6.6.6数组的排序 213 问题解释 2l5 几个常用程序模式 215 本章讨论的重要概念 215 练习 215 第7章 指针 217 7.1地址与指针 217 7.2指针变量的定义和使用 218 7.2.1指针操作 218 7.2.2指针作为函数的参数 219 7.2.3与指针有关的一些问题 222 7.3指针与数组 224 7.3.1指向数组元素的指针 224 7.3.2基于指针运算的数组程序设计 227 7.3.3数组参数与指针 228 7.3.4指针与数组操作的程序实例 229 7.3.5字符指针与字符数组 231 7.4指针数组 233 7.4.1指针数组与两维数组 234 7.4.2命令行参数及其处理 235 7.5多维数组作为参数的通用函数 238 7.6动态存储管理 240 7.6.1为什么需要动态存储管理 24O 7.6.2 c语言的动态存储管理机制 241 7.6.3两个程序实例 244 7.6.4函数、指针和动态存储 247 7.7定义类型 250 7.7.1定义数组类型和指针类型 251 7.7.2复杂类型描述与解读 252 7.8指向函数的指针 254 7.8.1函数指针的定义和使用 254 7.8.2函数指针作为函数的参数 255 7.8.3数值积分函数 257 7.8.4若干以函数指针为参数的数组操作实用函数 259 几个常用程序模式 260 本章讨论的重要概念 260 练习 261 第8章 文件和输入输出 263 8.1文件的概念 263 8.1.1流和文件指针 263 8.1.2缓冲式输入输出 264 8.2文件的使用 265 8.2.1文件的打开和关闭 265 8.2.2输入输出函数 267 8.2.3程序实例 268 8.2.4直接输入输出函数 270 8.3标准流输入输出与格式控制 271 8.3.1行式输入和输出 271 8.3.2输入格式控制 272 8.3.3输出格式控制 276 8.3.4以字符串作为格式化输入输出对象 278 8.3.5标准错误流 278 8.4程序实例 279 8.4.1求文件数据的平均值 279 8.4.2一个背单词程序 281 8.4.3资金账目系统 285 练习 288 第9章 结构和其他数据机制 291 9.1结构(struct) 291 9.1.1结构声明与变量定义 291 9.1.2结构变量的初始化和使用 296 9.1.3结构、数组与指针 297 9.2结构与函数 299 9.2.1处理结构的函数 299 9.2.2程序实例 302 9.3联合(union) 306 9.4枚举(enum) 308 9.5编程实例 310 9.5.1数据组的排序 310 9.5.2复数的表示和处理 312 9.6链接结构(自引用结构) 315 9.6.1链接结构 315 9.6.2自引用结构的定义 317 9.6.3程序实现 318 9.6.4数据与查找 321 9.7字段 322 问题解释 323 本章讨论的重要概念 323 练习 323 第10章 程序开发技术 327 10.1分别编译和C程序的分块开发 327 10.1.1分块开发的问题和方法 327 10.1.2程序实例:学生成绩处理 328 10.1.3分块重整 333 10.1.4其他安排和考虑 336 10.1.5模块化思想和技术 338 10.1.6单一头文件结构和多个头文件结构 342 10.2功能模块和程序库 345 10.2.1复数模块 345 10.2.2目标文件和库 348 10.2.3防止重复包含 349 10.3错误报告和处理 349 10.3.1建立统一的错误报告机制 349 10.3.2定义变参数的错误报告函数 350 10.3.3运行中错误的检查和处理 352 10.4程序的配置 358 10.4.1程序的行为参数和启动时的配置 358 10.4.2交互式配置 360 10.4.3通过命令行参数 361 10.4.4采用配置文件 362 10.5程序开发过程 362 10.5.1自上而下的开发 363 10.5.2自下而上的开发 365 10.5.3实际开发过程 365 练习 367 第11章 标准库 371 11.1标准库结构 371 11.1.1标准定义() 372 11.1.2错误信息() 372 11.2几个已经介绍过的头文件 373 11.2.1数学函数() 373 11.2.2字符处理函数() 374 11.3字符串函数(string.h>) 375 11.3.1一些字符串函数 375 11.3.2存储区操作 378 11.4功能函数() 379 11.4.1几个整数函数 380 11.4.2数值转换 380 11.4.3执行控制 381 11.4.4与执行环境交互 381 11.4.5常用函数bsearch和qsort 382 11.5日期和时间() 383 11.6实现特征(和) 385 11.6.1整数类型特征 385 11.6.2浮点数类型特征 386 11.7其他与输入输出有关的函数() 386 11.7.1符号常量和类型 386 11.7.2文件操作函数 387 11.7.3流缓冲区操作函数 388 11.7.4文件定位及定位函数 389 11.7.5其他有关函数 390 11.7.6采用va—list参数的输出函数 391 11.8定义变长度参数表(<stdarg.h) 392 11.9非局部控制转移() 395 11.10调试断言和信号处理(和) 397 11.11标准库的其他功能 398 11.11.1本地化 398 11.11.2多字节字符 400 本章讨论的重要概念 400 练习 400 附录A C语言运算符表 401 附录B C语言速查 403 附录C C99简介 409 进一步学习的建议 413 参考文献 416
删数问题(贪心算法)C++实现
我用贪心算法实现了一下删数问题,对学习算法的同学会有启发!
生产者消费者问题C/C++源程序
程序是在vc++2005上运行通过的,在vc6上运行有问题,不过只需要修改输出部分,应该还是可以的。 此外,在vc2005上运行时,由于WaitForMultiObjects函数只能等待64个线程,因此,只要生产者和消费者总数不超过64个就没问题,实际上,即使超过64个线程,通过修改WaitForMultiObjects函数等待对象个数为64,也是可以运行的。我测试了很多次,包括极端的情况(比如1000个生产者1个消费者或者相反的情形),没有问题。 如果需要帮助,可以和我联系。 操作系统中典型的同步问题,m个生产者,n个消费者链接在具有k个单位缓冲区的有界环形缓冲区上,生产者和消费者是并发线程,只要缓冲区未满,生产者线程就可以生产一件产品放入其中,只要缓冲区不空,消费者就可以从中取出一件产品消费。
遗传算法解决最优函数问题
利用遗传算法,解决最优函数问题。本例给出了详细的代码程序,并通过调试。
罚函数法MATLAB程序
M代码的罚函数程序,包括DFP法以及进退法确定搜索区间。
C语言粒子群算法求二次函数
粒子群算法(PSO)是一种经典群智能优化算法,以二次函数为例,提供C语言代码。
C语言课件及实验练习
包含C语言基础语法,控制结构,数组和指针,函数,动态内存分配,自定义数据内型及文件IO在编程中应该注意的问题.
C编写NextDate函数
该函数实现以下功能: 1.输入日期合法(如1993,1,5),输出下一天的日期; 2.输入日期年月日超出范围(如2004,11,32),输出‘无效输入日期’; 3.输入日期年月日均合法,但组合错误(主要指日错误如2011,2,29), 输出'日期组合错误'. 规定年为:1812<=年<=2012
hanoi用c语言
菜鸟做的汉诺塔的解法,刚学了数据结构里的栈,做了一下书上的例子,韩挺有意思的
OpenGL实现正方体各个面纹理映射
用VC6.0和OpenGL实现正方体旋转和正方体的六个面实现相同的纹理映射,程序能运行……
八数码问题C代码 可直接运行
八数码问题代码,用全局择优解决八数码问题,启发函数采用曼哈顿路径和计算不同节点两种方法。对学习人工智能图搜索应该很有帮助。
惩罚函数法的matlab实现方法
工程优化设计中常常用到的惩罚函数法的Matlab实现的源程序代码
键盘“Delete”键删除几何对象提示是否删除对话框
本范例示范如何重写Mapcontrol的默认键盘按键的功能,以Delete几何对象为例,选择多个或单个对象后,如果图层处于编辑状态,按下键盘Delete后,将提示用户是否删除对象,且不影响其他默认的快捷键操作。
图的着色问题(相邻边的颜色不同)
图的着色问题是由地图的着色问题引申而来的:用m种颜色为地图着色,使得地图上的每一个区域着一种颜色,且相邻区域颜色不同。
数据结构的迷宫自动寻路问题C语言写的
用C语言编写的,数据结构中的迷宫求解问题,实现有图型介面,可以自动寻路
约瑟夫环问题的顺序表解法
问题描述:有编号为1, 2…n 的 n 个人按顺时针方向围坐一圈,每人持有一个正整数密码。开始给定一个正整数 m,从第一个人按顺时针方向自1开始报数,报到m者出列,不再参加报数,这时将出列者的密码作为m,从出列者顺时针方向的下一人开始重新自1开始报数。如此下去,直到所有人都出列。试设计算法,输出出列者的序列。
visua kwic
简单的kwic代码 是用visualc 写的 有需要的话 可以看看 互相学习
字符串替换C程序
C语言内没有字符串替换函数,此函数实现字符串替换
最优化方法C语言实现
抛物线法 最速下降法 共轭梯度法 成功-失败法
布雷算法源代码(C++)
在10*10的方格中,随机分布10个地雷,并在其他没有地雷的格中显示该方格周围相邻方格中有几个地雷。
C语言函数速查手册
内为 C语言函数速查手册.chm
VB 利用DELETE语句删除数据表中的数据
VB 利用DELETE语句删除数据表中的数据 VB 利用DELETE语句删除数据表中的数据
C语言求极值问题~源码
一个用C语言设计的求极值程序,利用费波那楔数列
三角形构成及next day整体代码
本文档是三角形构成类型问题及下一日问题的源代码,解压后eclipse可直接使用查看
C、C++函数速查手册 (chw版)
压缩包内包含两个文件: 1> C++函数手册.chm 2> C函数手册.chm
生产者消费者问题(信号量)(linux)实现代码
参考教材中的生产者消费者算法,创建5个进程,其中两个进程为生产者进程,3个进程为消费者进程。一个生产者进程试图不断地在一个缓冲中写入大写字母,另一个生产者进程试图不断地在缓冲中写入小写字母。3个消费者不断地从缓冲中读取一个字符并输出。为了使得程序的输出易于看到结果,仿照的实例程序,分别在生产者和消费者进程的合适的位置加入一些随机睡眠时间。
罚函数matlab实现
外点罚函数实现代码,罚函数是指在求解最优化问题(无线性约束优化及非线性约束优化)时,在原有目标函数中加上一个障碍函数,而得到一个增广目标函数,罚函数的功能是对非可行点或企图穿越边界而逃离可行域的点赋予一个极大的值,即将有约束最优化问题转化为求解
C语言程序设计教程(杨路明)
非常不错的c语言程序设计课件,内附 "C++_Primer_Plus_深入C++", "C函数参考手册", "C语言笔试面试题", "C语言常见问题集", "C语言程序设计教程", "你必须知道的495个C语言问题"
Delete Number( 代码 )
关于Acm的一题题目,使用c的AC的代码。这网站不错,只可惜提示语言不是很好,要求多
C函数问题
C函数问题,感觉是描述性的介绍
钱币组合问题/动态规划/C语言
问题描述:设有 n 种不同的钱币各若干张,可用这 n 种钱币产生许多不同的面值。试 设计一个算法,计算给定的某个面值,能有多少种不同的产生方法。例如有 1 分3 张,2 分 3 张,5 分 1 张,则能组成 7 分面值的方法有:3 个 1 分+2 个 2 分,1 个 1 分+3 个 2 分,2 个 1 分+1 个5 分,1 个2分+1 个5 分共四种。 编程任务:对于给定的 n 种不同钱币,编程计算某个给定面值能有多少种不同的产生 方法。 数据输入:由文件input.txt提供输入数据。文件的第1行有1个正整数n(1<=n<=10),表 示有n中不同的钱币。第2行有n个数,分别表示每种钱币的面值。第3行有n个数,分别表示 每种钱币的张数k(0<=k<=10)。第4行有1个数,表示给定的面值m(1<=m<=20001)。 结果输出:将计算出的给定面值的不同产生方法种数输出到文件 output.txt。
文章热词 统计学稳健估计opencv函数 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 内设计培训 区块链问题