亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
123下一頁
最近訪問板塊 發(fā)新帖
查看: 9744 | 回復(fù): 20
打印 上一主題 下一主題

[C] 大俠來看.malloc 內(nèi)存分配問題 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2009-12-04 12:06 |只看該作者 |倒序?yàn)g覽
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    char* p1 = (char*)malloc(10);
    memset(p1, 'a', 10);
    char* p2 = p1;
    p2 += 2;
    *p2 = 0;
    free(p1);
    printf("p2: %s\n", p2);
    printf("p1: %s\n", p1);
    return 0;
}

這時(shí)候free(p1), 好像只是free到'\0'(*p2 = 0前, 這后的內(nèi)容, 也就是p2指向的還是存在的.
這是不是就內(nèi)存泄露了么? 那怎么正確釋放掉!!!

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2009-12-04 12:12 |只看該作者
內(nèi)存是被正常free掉了,原有的內(nèi)容還是在那里的

不存在內(nèi)存泄露的問題

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2009-12-04 12:15 |只看該作者
原帖由 雨過白鷺洲 于 2009-12-4 12:12 發(fā)表
內(nèi)存是被正常free掉了,原有的內(nèi)容還是在那里的

不存在內(nèi)存泄露的問題


不是啊, free 過后, p2前的內(nèi)容全置空啦. p2后面的就還在.
搞不明白free是咋操作的.

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2009-12-04 12:54 |只看該作者
你認(rèn)為你在p2那里加個(gè)\0就會(huì)影響到free釋放內(nèi)存?

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2009-12-04 13:18 |只看該作者
malloc多少就free多少。這個(gè)操作系統(tǒng)記著呢,錯(cuò)不了

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2009-12-04 13:27 |只看該作者
人被殺死之后,尸體還在,至少還存在殺人者的腦袋里面。

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2009-12-04 13:28 |只看該作者

行為不太確定,我free了,打印出來就是空了,有意思。。

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2009-12-04 13:52 |只看該作者

回復(fù) #3 liuhengloveyou 的帖子

p2前的內(nèi)容全置空, p2后面的就還在????

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2009-12-04 14:41 |只看該作者
原帖由 marksman201 于 2009-12-4 13:52 發(fā)表
p2前的內(nèi)容全置空, p2后面的就還在????


是啊, 我開始是在LINUX下(GCC)測(cè)試的, 效果就是那樣. free 把'\0'前的置空了, 后面的還有.
剛又在VC6里重做了一遍, 效果完全不一樣. free后所有malloc來的內(nèi)存都成不確定的內(nèi)容了.

不知道啥意思了, 完全不一樣. free 的標(biāo)準(zhǔn)定義應(yīng)該是什么樣的操作啊???

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2009-12-04 14:45 |只看該作者
lz了解一下malloc的原理吧,大致上在你malloc那段內(nèi)存區(qū)域前有一小塊內(nèi)存保存著本次申請(qǐng)內(nèi)存的信息,主要就是大小什么的,free時(shí)根據(jù)這個(gè)釋放的,要是只釋放0前的內(nèi)存區(qū)域,豈不是任何malloc的內(nèi)存,只要寫入0值就泄露,那malloc還有意義了嗎?
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP