一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

返回動(dòng)態(tài)內(nèi)存

 XX_YY_ZZ 2015-10-22

返回動(dòng)態(tài)內(nèi)存--malloc  

#include <stdio.h>

#include <stdlib.h>

void getmemory(char *p)

{    p=(char*)malloc(100);

     strcpy(p,"hello world");

 }

int main()

{    char *str =  NULL;

     getmemory(str);

     prinrf("%s\n",str);

     free(str);

     return 0;

}

        此段代碼有錯(cuò),getmemory(str)中參數(shù)問(wèn)題。編譯器會(huì)為每個(gè)函數(shù)的參數(shù)都復(fù)制一份臨時(shí)副本,指針參數(shù) p 的副本在C中是_p,并且對(duì)_p賦值為p ,即 _p = p 。如果在getmemory函數(shù)體內(nèi)修改了 _p,則導(dǎo)致參數(shù) p 的內(nèi)容做相應(yīng)的修改。這就是指針可用作輸出參數(shù)的原因。

        但此處中g(shù)etmemory 函數(shù)的 _p 申請(qǐng)了新內(nèi)存,此時(shí) _p 所指的內(nèi)存地址改變了,但是 p 沒(méi)變。所以每次調(diào)用getmemory都會(huì)造成內(nèi)存泄露。

        形參p的域只在函數(shù)里有效,p一開(kāi)始指向你想要的地址,但是當(dāng)你重新分配內(nèi)存的時(shí)候p指向了新的地址,當(dāng)你返回函數(shù)的時(shí)候原來(lái)的地址還是空的。
        要在函數(shù)里返回內(nèi)存有兩種辦法,一種是指針的指針 **p ,用這個(gè)指針指向一個(gè)需要分配內(nèi)存的值。另外一種方法更簡(jiǎn)單,你在函數(shù)里創(chuàng)造一個(gè)指針然后 return他就可以了。

正確代碼:

 #include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <string.h>
using namespace std;

char * getmm(int mm)
{
    char *p=(char *)malloc(sizeof(char) * mm);
    if(p!=NULL)
        strcpy(p,"hello world");
 return p;
 }

void getm(char **p,int mm)
{
    *p=(char *)malloc(sizeof(char) * mm);
    if(*p !=NULL)
        strcpy(*p,"hello world");
 }

int main(void)
{
    char *str = NULL;
    str = getmm(100);
 printf("%s\n",str);
 if(str!=NULL)
        free(str);
    cout << endl;
   
    char *ps = NULL;
    getm(&ps,100);
    cout << "ps=" << ps <<endl;
    free(ps);
   
    system("pause");
    return 0;
}

 

文章轉(zhuǎn)自:http://zeorro.blog.163.com/blog/static/18689205820122463927802/



    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    亚洲视频在线观看免费中文字幕| 日韩成人午夜福利免费视频| 91福利免费一区二区三区| 少妇视频一区二区三区| 欧美韩日在线观看一区| 久一视频这里只有精品| 欧美精品亚洲精品一区| 国内精品偷拍视频久久| 激情亚洲一区国产精品久久| 欧美熟妇喷浆一区二区| 国产精品超碰在线观看| 欧美精品亚洲精品日韩专区| 国产在线一区二区免费| 国产在线观看不卡一区二区| 高跟丝袜av在线一区二区三区| 五月天综合网五月天综合网| 国产成人精品国内自产拍| 日本东京热加勒比一区二区| 中文字幕亚洲精品在线播放| 精品视频一区二区三区不卡| 日系韩系还是欧美久久| 国产精品内射视频免费| 亚洲欧美日韩国产自拍| 午夜激情视频一区二区| 欧美一区二区三区高潮菊竹| 爱在午夜降临前在线观看| 亚洲男人的天堂就去爱| 国产一区二区不卡在线播放| 大伊香蕉一区二区三区| 亚洲一区二区福利在线| 日韩中文字幕视频在线高清版 | 欧洲一级片一区二区三区| 日本丰满大奶熟女一区二区| 中文字幕精品一区二区三| 女同伦理国产精品久久久| 国产视频一区二区三区四区| 日本av在线不卡一区| 久久国产精品热爱视频| 99久久精品午夜一区| 狠狠干狠狠操亚洲综合| 亚洲中文在线观看小视频|