您好,登錄后才能下訂單哦!
C語言中比較復雜的是對程序運行過程中在內(nèi)存分配方面的分析問題,接下來簡單介紹下C語言中一般是怎么分配的,內(nèi)存中分為棧,堆,
棧:棧中存放的是局部變量,出了作用域變量就會被釋放,棧是從高地址到低地址存放變量,具有先進后出的特點。
堆:恰恰與棧相反,堆是從低地址向高地址存放變量的。存放在堆里的變量是由人工申請空間的,也需要人工釋放空間。
靜態(tài)區(qū):全局變量等
內(nèi)存從高地址到底地址依次是棧區(qū),堆區(qū)和靜態(tài)區(qū),例如,下面這個例子
#include <stdio.h>
#include <stdlib.h>
int a = 0;
int main()
{
int i = 0;
int j = 0;
char *p = (char *)malloc(sizeof(char));
printf("%p", &a);
printf("\n");
printf("%p", &i);
printf("\n");
printf("%p", &j);
printf("\n");
printf("%p", &p);
printf("\n");
system("pause");
return 0;
}
結果如下:
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。