c++之:new与malloc

时间:2019-12-09 23:11:49   收藏:0   阅读:87
#include <iostream>
using namespace std;

void spacealloc_c()
{
    //开辟内存空间---C语言风格
    int *p = (int *)malloc(sizeof(int));
    *p=10;
    if(p!=NULL)
    {
        free(p);
        p=NULL;
    }
    //开辟内存数组---C语言风格
    //开辟内存空间,用于存放数组
    int *q = (int*)malloc(sizeof(int)*10);//有别于new int(10)----此为赋值为10
    printf("new出来的内存数组大小是:%d\n",sizeof(*q));
    for(int i=0;i<10;i++)
    {
        q[i]=i+88;
    }
    for(int i=0;i<10;i++)
    {
        printf("%d\n",q[i]);
    }
    if(q!=NULL)
    {
        free(q);
        q=NULL;
    }
}


void spacealloc_plus()
{
    //开辟内存空间---C++语言风格
    int *p = new int;
    //int *p = new int(10);//表示给新分配的整形变量分配空间,并且赋值为10
    *p=10;
    if (p!=NULL)
    {
        delete p;
        p=NULL;
    }

    //开辟内存空间,用于存放数组
    int *q = new int[10];//有别于new int(10)----此为赋值为10
    printf("new出来的内存数组大小是:%d\n",sizeof(*q));
    for(int i=0;i<10;i++)
    {
        q[i]=i*88;
    }
    for(int i=0;i<10;i++)
    {
        printf("%d\n",q[i]);
    }
    if(q!=NULL)
    {
        delete[] q;
        q=NULL;
    }
}
void main()
{
    spacealloc_c();
    cout<<"====================================="<<endl;
    spacealloc_plus();
    system("pause");
}

c++也可以使用malloc free,然而更c++风格的是new  delete

原文:https://www.cnblogs.com/saintdingspage/p/12013759.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!