c语言int转string问题 int * p = (int *)malloc(sizeof(int))

新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
空间积分0 信誉积分220 UID阅读权限10积分149帖子精华可用积分158 专家积分0 在线时间237 小时注册时间最后登录
白手起家, 积分 149, 距离下一级还需 51 积分
帖子主题精华可用积分158 专家积分0 在线时间237 小时注册时间最后登录
论坛徽章:0
malloc/free应该是C库函数
只要np==p,就可以释放那段内存了,但是未必回收,C库可以先不归还给操作系统,可以留待下一次malloc使用,如果内容在free前未清空确实应该是一个安全漏洞,可能泄露信息。
空间积分0 信誉积分3069 UID阅读权限10积分45帖子精华可用积分45 专家积分0 在线时间6887 小时注册时间最后登录
白手起家, 积分 45, 距离下一级还需 155 积分
帖子主题精华可用积分45 专家积分0 在线时间6887 小时注册时间最后登录
论坛徽章:0
C库可以先不归还给操作系统,可以留待下一次malloc使用
还魂僵尸 发表于
& & 此话怎么讲?
空间积分0 信誉积分100 UID阅读权限10积分11帖子精华可用积分11 专家积分0 在线时间6 小时注册时间最后登录
白手起家, 积分 11, 距离下一级还需 189 积分
帖子主题精华可用积分11 专家积分0 在线时间6 小时注册时间最后登录
论坛徽章:0
fender0107401
& & 建议楼主仔细看看 malloc()和free()函数的机制。free()只是释放了指针指向的那块内存,并没有释放指针。
空间积分0 信誉积分100 UID阅读权限10积分79帖子精华可用积分79 专家积分0 在线时间152 小时注册时间最后登录
白手起家, 积分 79, 距离下一级还需 121 积分
帖子主题精华可用积分79 专家积分0 在线时间152 小时注册时间最后登录
论坛徽章:0
是否回收指针指向的内存,要看这段内存的引用计数是否为0,所以我认为不会释放,因为p仍然指向那段内存。
空间积分0 信誉积分100 UID阅读权限10积分79帖子精华可用积分79 专家积分0 在线时间152 小时注册时间最后登录
白手起家, 积分 79, 距离下一级还需 121 积分
帖子主题精华可用积分79 专家积分0 在线时间152 小时注册时间最后登录
论坛徽章:0
OS 回收了内存,但是不一定会立即清空内存内容啊 ~
evaspring 发表于
& & 赞同,只有当有人再次申请内存时,操作系统才会可能将上一次释放的内存重新分配,否则仍然保留原来的值。
空间积分0 信誉积分220 UID阅读权限10积分149帖子精华可用积分158 专家积分0 在线时间237 小时注册时间最后登录
白手起家, 积分 149, 距离下一级还需 51 积分
帖子主题精华可用积分158 专家积分0 在线时间237 小时注册时间最后登录
论坛徽章:0
此话怎么讲?
pmerofc 发表于
& & 细节我记不清了,也许细节有错误吧。但是我记得的是:
malloc/free是C库函数,是申请和释放堆内存的接口。而堆一般来说应该是C库管理,而不是操作系统内核。我说那个话大致是这个意思。我确实说的不够清楚吧,确实自己的印象也不是非常清楚了,也没有去再查查……
空间积分0 信誉积分2104 UID阅读权限50积分3858帖子精华可用积分3859 专家积分12 在线时间6710 小时注册时间最后登录
小富即安, 积分 3858, 距离下一级还需 1142 积分
帖子主题精华可用积分3859 专家积分12 在线时间6710 小时注册时间最后登录
论坛徽章:5
赞同,只有当有人再次申请内存时,操作系统才会可能将上一次释放的内存重新分配,否则仍然保留原 ...
wannabeter 发表于
& & 而且重新分配也要自己去清空内存,这也就是为什么要调用 memset 函数的原因 ~
BOOST 研究小组 QQ群: &&丫们就一码农的货,天天操大神的心
空间积分0 信誉积分100 UID阅读权限10积分4帖子精华可用积分4 专家积分0 在线时间19 小时注册时间最后登录
白手起家, 积分 4, 距离下一级还需 196 积分
帖子主题精华可用积分4 专家积分0 在线时间19 小时注册时间最后登录
论坛徽章:0
fender0107401
& & OS如果对每个释放都清0得慢死,而且在内存中是逻辑地址,又不是物理地址,其它程序一般访问不到这个进程的地址空间的。
空间积分0 信誉积分124 UID阅读权限10积分21帖子精华可用积分21 专家积分0 在线时间35 小时注册时间最后登录
白手起家, 积分 21, 距离下一级还需 179 积分
帖子主题精华可用积分21 专家积分0 在线时间35 小时注册时间最后登录
论坛徽章:0
donglongchao
os应该会回收,以便以后利用这块空间,如果只是“解锁”,那和直接p=NULL,就没区别了吧
空间积分1 信誉积分1392 UID491441阅读权限100积分27146帖子精华可用积分27146 专家积分68 在线时间5519 小时注册时间最后登录
帖子主题精华可用积分27146 专家积分68 在线时间5519 小时注册时间最后登录
论坛徽章:1
free(p)我觉的就是解锁的意思,p和那块内存没关系了,并没有把那块内存给删除.
linfenghuaster 发表于
& & 这段代码说明什么?
盼解惑。#include &stdio.h&
#include &stdlib.h&
#include &string.h&
int main ( void )
{
& && &&&char& & *p;
& && &&&char& & *s;
& && &&&p = (char *)malloc(sizeof(char)*10);
& && &&&memcpy(p,&abcdefghij&,10);
& && &&&s =
& && &&&fprintf(stdout,&1 = %s\n&,s);
& && &&&free(p);
& && &&&fprintf(stdout,&2 = %s\n&,s);
& && &&&return 0;
}复制代码
甲午耻,犹未雪。国人恨,何时灭。驾长车,踏破富士山缺。壮志饥餐日虏肉,笑谈渴饮倭奴血。待从头,收拾旧山河,朝天阙。
我累了,想睡觉
北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:
广播电视节目制作经营许可证(京) 字第1234号
中国互联网协会会员&&联系我们:
感谢所有关心和支持过ChinaUnix的朋友们
转载本站内容请注明原作者名及出处新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
手册帮一统CU!
空间积分0 信誉积分2746 UID阅读权限100积分115741帖子精华可用积分115741 专家积分25 在线时间11387 小时注册时间最后登录
帖子主题精华可用积分115741 专家积分25 在线时间11387 小时注册时间最后登录
论坛徽章:34
int *p;
int *
p=malloc(10*sizeof(int))复制代码我感觉:
1.malloc申请了一个连续的内存,大小是10*sizeof(int)。
2.p指向这个内存。
3.p[0]是这个内存的第一个int的地址。
4.free(p)会释放这一快内存,也就是10*sizeof(int)大小的内存。
如果有另外一个指针np,那么np=p,并且free(np)和直接free(p)有什么区别吗?
free(np)是否会释放这10*sizeof(int)大小的内存呢?
Good good study, day day up!
囧囧囧囧囧囧囧囧囧囧囧囧囧
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
空间积分0 信誉积分102 UID阅读权限50积分2211帖子精华可用积分2211 专家积分0 在线时间1296 小时注册时间最后登录
小富即安, 积分 2211, 距离下一级还需 2789 积分
帖子主题精华可用积分2211 专家积分0 在线时间1296 小时注册时间最后登录
论坛徽章:0
用思想的力量来改变世界
空间积分9 信誉积分1159 UID734114阅读权限90积分13735帖子精华可用积分13735 专家积分18 在线时间1855 小时注册时间最后登录
大富大贵, 积分 13735, 距离下一级还需 6265 积分
帖子主题精华可用积分13735 专家积分18 在线时间1855 小时注册时间最后登录
论坛徽章:0
自己做实验就知道了
三鹿、蒙牛、地沟油,现在还要加个你们的烂鞋子感冒胶囊,有一天我会变成超人!
空间积分0 信誉积分497 UID7956913阅读权限20积分290帖子精华可用积分290 专家积分0 在线时间2672 小时注册时间最后登录
稍有积蓄, 积分 290, 距离下一级还需 210 积分
帖子主题精华可用积分290 专家积分0 在线时间2672 小时注册时间最后登录
论坛徽章:0
free(p)我觉的就是解锁的意思,p和那块内存没关系了,并没有把那块内存给删除.
哪?地球?哦,我去过那,有段回忆。
神马都是浮云啊,所以活得洒脱些好。
空间积分0 信誉积分38 UID阅读权限10积分36帖子精华可用积分36 专家积分0 在线时间1385 小时注册时间最后登录
白手起家, 积分 36, 距离下一级还需 164 积分
帖子主题精华可用积分36 专家积分0 在线时间1385 小时注册时间最后登录
论坛徽章:0
嗯,内存释放后是否回收由OS决定。
Linux C C++的工作请联系我,Qt Python亦可。TIA
空间积分0 信誉积分260 UID阅读权限90积分9838帖子精华可用积分9838 专家积分30 在线时间1806 小时注册时间最后登录
腰缠万贯, 积分 9838, 距离下一级还需 162 积分
帖子主题精华可用积分9838 专家积分30 在线时间1806 小时注册时间最后登录
论坛徽章:0
fender0107401
& & 应该不会
半杯茶半杯湖底沙,半句话半首蝶恋花
半杯茶半杯湖底沙,半个人伴奏冷笑话
手册帮一统CU!
空间积分0 信誉积分2746 UID阅读权限100积分115741帖子精华可用积分115741 专家积分25 在线时间11387 小时注册时间最后登录
帖子主题精华可用积分115741 专家积分25 在线时间11387 小时注册时间最后登录
论坛徽章:34
我这的试验结果是在gdb里面还能看到内存里面的数据,
这算不算安全漏洞呢?
比如我动态的申请了内存,保存一个密码,明文的,
然后我free了我申请的内存,然后操作系统没有回收这个内存,也就是说数据还在上面,别的程序是否有可能读去这些数据呢?
Good good study, day day up!
囧囧囧囧囧囧囧囧囧囧囧囧囧
空间积分0 信誉积分3069 UID阅读权限10积分45帖子精华可用积分45 专家积分0 在线时间6887 小时注册时间最后登录
白手起家, 积分 45, 距离下一级还需 155 积分
帖子主题精华可用积分45 专家积分0 在线时间6887 小时注册时间最后登录
论坛徽章:0
3.p[0]是这个内存的第一个int的地址。
fender0107401 发表于
感觉这个说法有问题
楼主是否再仔细推敲一下?
空间积分0 信誉积分2104 UID阅读权限50积分3858帖子精华可用积分3859 专家积分12 在线时间6710 小时注册时间最后登录
小富即安, 积分 3858, 距离下一级还需 1142 积分
帖子主题精华可用积分3859 专家积分12 在线时间6710 小时注册时间最后登录
论坛徽章:5
OS 回收了内存,但是不一定会立即清空内存内容啊 ~
BOOST 研究小组 QQ群: &&丫们就一码农的货,天天操大神的心
空间积分0 信誉积分272 UID阅读权限30积分1607帖子精华可用积分1607 专家积分0 在线时间226 小时注册时间最后登录
家境小康, 积分 1607, 距离下一级还需 393 积分
帖子主题精华可用积分1607 专家积分0 在线时间226 小时注册时间最后登录
论坛徽章:0
本帖最后由 liubingqian 于
21:38 编辑
2. 严格的说,p指向这段内存的首地址。
3. 用 *(p+0)
5. 如果有“np=p;”,那么free(np);和free(p);是一样的。
我这的试验结果是在gdb里面还能看到内存里面的数据,
这算不算安全漏洞呢?
比如我动态的申请了内存, ...
fender0107401 发表于
free函数并不会把参数的指针指向的内容清空,如果需要安全,在free前自己先清空。
北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:
广播电视节目制作经营许可证(京) 字第1234号
中国互联网协会会员&&联系我们:
感谢所有关心和支持过ChinaUnix的朋友们
转载本站内容请注明原作者名及出处解释基于apriori算法的关联规则挖掘C语言版_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
&&¥2.00
喜欢此文档的还喜欢
解释基于apriori算法的关联规则挖掘C语言版
本​文​详​细​解​释​了​基​于​a​p​r​i​o​r​i​算​法​的​关​联​规​则​挖​掘​的​C​语​言​实​现​过​程​,​很​清​晰​,​易​理​解​。
阅读已结束,如果下载本文需要使用
想免费下载本文?
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢L=malloc(sizeof(seqlisrt))_百度知道
L=malloc(sizeof(seqlisrt))
!!是什么意思!!!!!!?malloc是怎么用的?谢谢
提问者采纳
puts(&quot,malloc函数请求延时。接下来; &#47,并且在返回后强行转换为实际类型的指针;
p = new int,如果你写成;
头文件,另一块的大小就是剩下的字节);
说明; /返回类型为int* 类型(整数型指针)。C,void* 类型可以强制转换为任何其它类型的指针,但事实上只分配了1个字节大小的内存空间;Memory Allocated at: new 返回指定类型的指针;
p=(char *)malloc(100)。到最后:
int* p = (int *) malloc (1);返回类型为 int* 类型(整数型指针),malloc 只管分配内存,分配大小为 sizeof(int) * 100:#include &lt:
int *pmalloc函数
原型,将分配给用户的那块内存传给用户: %x&quot.h&gt。把0赋给malloc能得到一个合法的指针;,报错;
此时得到的是G
char *p;Got a null pointer&分配可以放得下100个整数的内存空间。)
功能; 或 #include &lt!造成的结果是后面的内存中原有数据内容全部被清空:
&#47、函数的实参为 sizeof(int) .h& (注意:malloc 向系统申请分配指定size个字节的内存空间;
printf(&quot,空闲链会被切成很多的小内存片段; 则程序无法通过编译;
return 0; &#47:alloc,分配大小为 sizeof(int),在其它操作上保持一致;
free(p)!&#92,如果这时用户申请一个大的内存片段:p = malloc (sizeof(int))。void* 表示未确定类型的指针:
int* p = (int *) malloc ( sizeof(int) * 100 );):分配长度为num_bytes字节的内存块
if ((ptr = (char *)malloc(0)) == NULL)
puts(&),对它们进行整理;syslib。返回类型是 void* 类型。调用malloc函数时;
#include &lt。
除了分配及最后释放的方法不一样以外,应使用free()函数将内存块释放,其值将是随机的;*clear screen*&#47:如果分配成功则返回指向被分配内存的指针,并开始在空闲链上翻箱倒柜地检查各内存片段;
p = (int *) malloc (sizeof(int))。malloc 和 new 至少有两个不同;n&/
printf(&quot、malloc 函数返回的是 void * 类型。
当内存不再使用时.c*/&#47。调用free函数时.h 的内容是完全一致的,用于指明一个整型数据需要的大小。
另外有一点不能直接看出的区别是;*malloc。
第一.h&gt,C++规定:
int* parr,所以得到的一片新内存中。然后,申请出一段连续的内存。
代码也能通过编译,当你往里头存入一个整数.h 与
或; &#47,方法无非是指定你所需要内存大小;
parr = new int [100];),就会有3个字节无家可归。如果你写成,p):extern void *malloc(unsigned int num_bytes):
void *malloc(int size),将该内存块一分为二(一块的大小与用户请求的大小相等。
从函数声明上可以看出,而直接“住进邻居家”;
#include &
而 malloc 则必须由我们计算要字节数;Not Enough M&#47,并且可以自动计算所需要大小。于是。所以必须通过 (int *) 来将强制转换,它沿连接表寻找一个大到足以满足用户请求所需要的内存块;
getchar(),通过malloc或new得到指针;Got a valid pointer&quot,并将剩下的那块(如果有的话)返回到连接表上。
malloc 也可以达到 new [] 的效果。
比如想分配100个int类型的空间,并不能对所得的内存进行初始化;malloc。比如。
对其做一个特例补充
char *ptr,它将用户释放的内存块连接到空闲链上:“不能将 void* 赋值给 int * 类型变量”;
clrscr().h&gt,将相邻的小空闲块合并成较大的内存块,那么空闲链上可能没有可以满足用户要求的片段了,否则返回空指针NULL。
第二,它有一个将可用的内存块连接为一个长长的列表的所谓空闲链表;
函数声明(函数原型)。malloc()函数的工作机制
malloc函数的实质体现在;alloc
其他类似问题
sizeof的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 c语言int范围 的文章

 

随机推荐