變量用delete釋放,數(shù)組用delete[]釋放,指針的類型不能改變。對(duì)于一些簡(jiǎn)單的情況(所有成員都是基本數(shù)據(jù)類型,沒(méi)有析構(gòu)函數(shù)),可以直接用delete釋放。
在臨夏等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供做網(wǎng)站、成都網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作定制開發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),營(yíng)銷型網(wǎng)站建設(shè),外貿(mào)網(wǎng)站制作,臨夏網(wǎng)站建設(shè)費(fèi)用合理。
例:
structNODE
{
intidata;
doubleddata;
}node[100];
//釋放空間
delete[]node;
//所有的數(shù)組類型釋放空間都這樣寫
擴(kuò)展資料
C語(yǔ)言數(shù)組
數(shù)組的聲明并不是聲明一個(gè)個(gè)單獨(dú)的變量,比如number0、number1、...、number99,而是聲明一個(gè)數(shù)組變量,比如numbers,然后使用numbers[0]、numbers[1]、...、numbers[99]來(lái)代表一個(gè)個(gè)單獨(dú)的變量。數(shù)組中的特定元素可以通過(guò)索引訪問(wèn)。
所有的數(shù)組都是由連續(xù)的內(nèi)存位置組成。最低的地址對(duì)應(yīng)第一個(gè)元素,最高的地址對(duì)應(yīng)最后一個(gè)元素。
你提問(wèn)中定義方式是在函數(shù)完成前釋放不了的,你定義的字符數(shù)組,放在stack空間,不能用free()試圖釋放堆中的內(nèi)容,因?yàn)槟抢锸且欢纬绦蜻\(yùn)行的保證。
只有使用malloc()在棧空間開辟的動(dòng)態(tài)內(nèi)存才能被釋放!
如果你后面的代碼想繼續(xù)用這個(gè)數(shù)組名的話,這個(gè)數(shù)組還是可以重新賦值。你可以把你用到的數(shù)據(jù)獨(dú)到這個(gè)變量中就行了!
你定義的anto數(shù)組在函數(shù)完成后,系統(tǒng)自己就回收了!
有兩種方法可以實(shí)現(xiàn)。
為方便說(shuō)明,定義整型數(shù)組a,并實(shí)現(xiàn)將a清空。
int a[4] = {1,2,3,4};
1、 通過(guò)數(shù)組遍歷,逐個(gè)賦值為0。
定義循環(huán)變量int i;
for(i = 0; i 4; i ++)
a[i]=0;
該程序功能為遍歷數(shù)組a,逐個(gè)將元素賦值為0,實(shí)現(xiàn)清空效果。
2、 借助內(nèi)存賦值函數(shù)memset,整體賦值為0。
void *memset(void *dst, int value, size_t size);
這個(gè)函數(shù)的功能為將src上,大小為size字節(jié)的數(shù)據(jù)賦值為value。需要注意的是,該函數(shù)賦值是以字節(jié)為單位的。
調(diào)用該函數(shù)時(shí)需要引用頭文件string.h,即
#include string.h
清空數(shù)組的代碼為
memset(a,0,sizeof(a));
刪除就是將其下標(biāo)所在位置的中的內(nèi)容置為空(也就是0),然后從此位置開始,后面的內(nèi)容前移,再把最后那個(gè)位置的置為空(就是0)。前移無(wú)非就是 類似 arr[i-1]=arr[i]這個(gè)意思。當(dāng)可以確認(rèn)數(shù)組中存放的都是整數(shù),你可以將這個(gè)元素置為-1表示刪除。增加就是先檢查你的數(shù)組中有沒(méi)有-1的元素,如果有,就設(shè)置為你的值。如果全部都滿了,就開一個(gè)更大的數(shù)組,把數(shù)據(jù)拷貝過(guò)去。把相應(yīng)位后面的一次前移一位,就是實(shí)現(xiàn)了刪除操作,可以用個(gè)for循環(huán)就可以實(shí)現(xiàn)了。數(shù)組的內(nèi)存分配:變量在內(nèi)存中是從大到小尋址的(內(nèi)存中以字節(jié)為單位),比如00000000 00000000 00000000 00001010在內(nèi)存中,00001010的地址是最小的;而數(shù)組則有些不同,數(shù)組的元素自然的從上往下排列 存儲(chǔ),整個(gè)數(shù)組的地址為首元素的地址。(但是組成元素的字節(jié)還是按從大到?。?/p>
#include
/*頭文件,他包含函數(shù)體用的函數(shù)如printf(),scanf()都在庫(kù)函數(shù)stdio.h中,*/void
main()
for(i=0;i=9;i++)
a[i]=i;/*數(shù)組初始化給數(shù)組賦值,
C語(yǔ)言刪除數(shù)組指定元素的源代碼如下:
#include stdio.h
main()
{
char s[80],c;
int j,k;
printf("\nEnter a string: ");
gets(s);
printf("\nEnter a character: ");
c=getchar( );
for(j=k=0;s[j]!= '\0';j++)
if(s[j]!=c)
s[k++]=s[j];
s[k]= '\0';
printf("\n%s\n",s);
system("pause");
}
擴(kuò)展資料
自定義函數(shù)代碼如下
function delarrayval2($arr,$v){
$keyarr = array_keys($arr, $v);
if(count($keyarr)){
foreach ($keyarr as $key) {
unset($arr[$key]);
}
}
return $arr;
}