您好,登錄后才能下訂單哦!
C語言中比較復雜的是對程序運行過程中在內存分配方面的分析問題,接下來簡單介紹下C語言中一般是怎么分配的,內存中分為棧,堆,
棧:棧中存放的是局部變量,出了作用域變量就會被釋放,棧是從高地址到低地址存放變量,具有先進后出的特點。
堆:恰恰與棧相反,堆是從低地址向高地址存放變量的。存放在堆里的變量是由人工申請空間的,也需要人工釋放空間。
靜態區:全局變量等
內存從高地址到底地址依次是棧區,堆區和靜態區,例如,下面這個例子
#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;
}
結果如下:
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。