欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

new

程序员文章站 2022-03-18 19:40:53
...

动态内存分配

用new运算符实现动态内存分配

分配一个变量

p=new t;
t是任意类型名,p为类型为t*的指针。
动态分配出一片大小为sizeof(t)字节的内存空间,并将该内存空间的起始地址赋值给p。

int*pn;
pn=new int*pn=5

分配一个数组

p=new t[n];
t是任意类型名,p为类型为t*的指针。
n:要分配数组元素的个数,可以是整型表达式;
动态分配出一片大小为n*sizeof(t)字节的内存空间,
并将该内存空间的起始地址赋值给p。

int * p;
int i=5;
p=new int [i*20];
p[0]=100;///yes.对p[0]赋值
p[100]=100;///no,越界。

new运算符返回值类型

new t;
new t[100];
返回值都是t*。

释放动态分配出来的内存空间

delete 运算符
delete 指针;//该指针指向new出来的空间
delete []指针;
一片空间不能被delete多次。
释放动态分配的变量

int*p=new int;
*p=5;
delete p;

释放动态分配的数组

int*p=new int[20];
p[0]=1;
delete []p;

动态分配指针数组

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int main()
{
    char *name[5],str[15];
    int i,len;
    for(i=0;i<5;++i)
    {
        gets(str);
        len=strlen(str);
        name[i]=new char[len];///可见和malloc的不同,这                    里还是char。
        strcpy(name[i],str);

    }
    for(i=0;i<5;++i)
    {
        cout<<name[i]<<;
    }

}
相关标签: 内存分配 new