android108 内存分配
生活随笔
收集整理的這篇文章主要介紹了
android108 内存分配
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h> //包含頭文件
main(){int i = 3;//棧中 int arr[10];//棧中 int* p = malloc(sizeof(int) * 10);//p在棧中,malloc在堆里面長度為10個(gè)整型,malloc出來的內(nèi)存是連續(xù)的。 *p = 10;*(p+1) = 20;printf("%#x\n", p);//0x3e3cf0 printf("%d\n", *p);//10 printf("%d\n", *(p+1));//20 printf("%d\n", p+1);//4078836 printf("%d\n", *(p+2));//0 printf("%d\n", *(p+3));//0
free(p);system("pause");
}#include <stdio.h>
#include <stdlib.h>main(){int i = 3;int* p = &i;int** q = &p;int*** l = &q;printf("i的值為%d\n", ***l);//3 //l表示取出l內(nèi)存空間的值,*l表示取出l內(nèi)存空間值的內(nèi)存空間的值,**l表示取出l內(nèi)存空間值的內(nèi)存空間值的內(nèi)存空間的值。 system("pause");
} #include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
main(){printf("請輸入學(xué)生人數(shù):");int count;scanf("%d", &count);//int b在C中是系統(tǒng)在棧中申請內(nèi)存,系統(tǒng)負(fù)責(zé)回收的。// malloc申請的是堆內(nèi)存由程序員釋放。 //棧內(nèi)存只有2M,連續(xù)的內(nèi)存空間,先進(jìn)來的后釋放。 堆的內(nèi)存和物理內(nèi)存一樣大,//堆不連續(xù)是用鏈表表示的,鏈表查找比連續(xù)的麻煩但是增刪比連續(xù)的快。 //C是面向過程的沒有對象概念所以沒有new,malloc就是new。//靜態(tài)內(nèi)存是棧上分配的,編譯的時(shí)候就已經(jīng)分配好了,程序的怎個(gè)運(yùn)行期間都存在,//例如全局變量和static變量。動(dòng)態(tài)內(nèi)存是堆上malloc或者new分配的。 //根據(jù)學(xué)生人數(shù)去動(dòng)態(tài)申請堆內(nèi)存 , int* p = malloc(sizeof(int) * count);//count個(gè)int類型 int i;for(i = 0; i < count; i++){printf("請輸入第%d個(gè)學(xué)生學(xué)號(hào):", i);scanf("%d", p+i);}printf("請輸入新增的學(xué)生人數(shù):");int newCount;scanf("%d", &newCount);p = realloc(p, sizeof(int) * (count + newCount));//擴(kuò)充p內(nèi)存 for(i = count; i < count + newCount; i++){printf("請輸入第%d個(gè)學(xué)生學(xué)號(hào):", i);scanf("%d", p+i);}for(i = 0; i < count + newCount; i++){printf("第%d個(gè)學(xué)生的學(xué)號(hào)是:%d\n", i, *(p+i)); }system("pause");
}
?
轉(zhuǎn)載于:https://www.cnblogs.com/yaowen/p/4985285.html
總結(jié)
以上是生活随笔為你收集整理的android108 内存分配的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手脱ASProtect v1.23 RC
- 下一篇: [官方教程] [ES4封装教程]1.使用