new
動態內存分配
用new運算符實現動態內存分配
- 動態內存分配
- 分配一個變量
- 分配一個數組
- new運算符返回值類型
- 釋放動態分配出來的內存空間
- 動態分配指針數組
分配一個變量
p=new t;
t是任意類型名,p為類型為t*的指針。
動態分配出一片大小為sizeof(t)字節的內存空間,并將該內存空間的起始地址賦值給p。
分配一個數組
p=new t[n];
t是任意類型名,p為類型為t*的指針。
n:要分配數組元素的個數,可以是整型表達式;
動態分配出一片大小為n*sizeof(t)字節的內存空間,
并將該內存空間的起始地址賦值給p。
new運算符返回值類型
new t;
new t[100];
返回值都是t*。
釋放動態分配出來的內存空間
delete 運算符
delete 指針;//該指針指向new出來的空間
delete []指針;
一片空間不能被delete多次。
釋放動態分配的變量
釋放動態分配的數組
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]<<;}} 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
- 上一篇: 频繁默认网关不可用_win10 总是默认
- 下一篇: oracle 修改2个表,oracle学