【C++】学习笔记草稿版系列4(C++内存管理)

malloc,free #include

//C
int *p = (int*)malloc(size0f(int));
//C++ 强制类型转换
int *p = static_cast<int*>malloc(size0f(int));

int *p = new int;

初始化数组

int main()
{
    struct Stu
    {
        int age;
        string name;
    };
    Stu* pStu = new Stu{10, "bob"};
}

C++所有东西都不要.h了,前面只要放个c就好了

#include <string.h>
#include <cstring>
int main()
{   
    char * p = new char[4];
    strcpy(p, "China")
}

一般不在new的时候初始化,一般new了指针后赋值的方法为:

int * pi = new int[5];
memset(pi, 0, sizeof(int)[5]);

创建指针的数组

char **ppi = char int*[5];
ppc[0] = "China";
ppc[1] = "automan";
ppc[2] = "greatWall";
ppc[3] = new char[10];
while(*ppc)
{
    cout<<*ppc++<<endl;
}

数组一维、多维

int (*par)[4] = new int[3][4]{{0}};
for (int i=0; i<sizeof(int[3][4])/sizeof(int[4]); i++)
{
    for (int j=0; j<4; j++)
    {
        cout<<pa[i][j]<<endl;
    }
}

int *px[3][4][5] = new int[2][3][4][5];

释放

int main()
{
    int *q = new int[100];
    delete []q;
    //delete q; 只删除第一个元素
}

new的东西不要free
malloc的东西不要delete

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值