訪問內存 只要知道內存地址就可以了
不過 一般都是動態分配的。
如果要訪問固定內存地址 可以
unsigned char * p = (unsigned char *)0xB1234456;//內存地址值
然後通過*p訪問該地址。
B. c語言內存問題
答案是C
p1是存儲在棧區
p2這個指針是存儲在堆區的,因為p2是malloc分配的空間
"123456"是一個常量,所以它是存儲在常量區的,並不是存儲在棧區
棧區和堆區方向是相反的,一個向下增長,一個向上遞減。
C. 在c語言中 佔用的內存
那個一般是以前的系統了16位的
現在一般是32位
不同的計算機他們的字母
數字等所佔位元組數不同。
但是一個字元一般都只佔一個位元組
而整數一般占
2個或4個位元組
在C語言中
有個sizeof函數。
你定義個整數
i
n
int
i,n;
n=sizeof(i);
再輸出n的只看是幾
就代表幾位了。。
printf("%d",n);
字元就用
char
i;
int
n;
還有實型
float
i;
int
n;
D. C語言如何申請內存
1.calloc
=
2malloc
+
memset
3與4是連續的,但是他們方式不一樣,3你是通過new出來的和malloc一樣,它申請的堆中的內存,需要手動釋放。而4char
t[10]如果你是在函數里用到就是在棧里申請的,出函數會自動釋放,如果是在文件開頭的全局變數那就是在靜態存儲區
就這點區別
E. C語言中的原始內存
不明白。這是哪個書的作者自創的概念?
可能是說它返回的是所創內存的地址。區別於現在高級一點的內存管理方式,返回的是所創內存的句柄。
F. c語言的內存變數
存儲類別指的是數據在內存中存儲的方法。存儲方法分為靜態存儲和動態存儲兩大類。標准C語言為變數、常量和函數定義了4種存儲類型:extern、auto、static、register。根據變數的存儲類別,可以知道變數的作用域和存儲期。這4種存儲類型可分為兩種生存期限:永久的(在整個程序執行期都存在)和臨時的(暫時保存在堆棧和寄存器中)。extern和static用來標識永久生存期限的「變數和函數」,而anto和register用來標識臨時生存期限的"變數"。只有變數才有臨時生存期限。一個變數和函數只能具有一個存儲類型,也只能有一種生存期限。
內存中供用戶使用的空間有三部分:
程序區:存放程序的可執行代碼;
靜態存儲區:存放靜態變數(全局變數和靜態局部變數);
動態存儲區:存放函數調用時調用函數的現場保護和返回地址、函數形參、自動局部變數;
變數的聲明分為」定義性聲明「(需建立存儲空間,如:int a;)和」引用性聲明「(不需建立存儲空間,如extern a;)。廣義上講,聲明包括定義,一般為敘述方便,把建立存儲空間的聲明稱定義,而不不需建立存儲空間的聲明稱聲明。
auto
函數中的局部變數,如果不用關鍵字static加以聲明,編譯系統對它們是動態地分配存儲空間的。函數的形參和在函數中定義的變數(包括在復合語句中定義的變數)都屬此類。在調用該函數時,系統給形參和函數中定義的變數分配存儲空間,數據存儲在動態存儲區中。在函數調用結束時就自動釋放這些空間。如果是在復合語句中定義的變數,則在變數定義時分配存儲空間,在復合語句結束時自動釋放空間。因此這類局部變數稱為自動變數(auto variable)。自動變數用關鍵字auto作存儲類別的聲明。
對自動變數賦初值,不是在編譯時進行的,而是在函數調用時進行。對自動變數來說,若不賦初值,則它的值是一個不確定的值。
G. C語言中的內存指什麼
一樣的,你編的就是程序,系統運行的也是程序,只是大小不一樣,形式略有不同而已。當然佔用一樣的內存了。
H. c語言 怎麼讀內存數據
分配內存空間然後讀取
#include<stdio.h>
#include<stdlib.h>
intfilelength(FILE*fp);
char*readfile(char*path);
intmain(void)
{
FILE*fp;
char*string;
string=readfile("c:/c.c");
printf("讀入完畢 按任意鍵釋放內存資源 ");
//printf("%s ",string);
system("pause");
return0;
}
char*readfile(char*path)
{
FILE*fp;
intlength;
char*ch;
if((fp=fopen(path,"r"))==NULL)
{
printf("openfile%serror. ",path);
exit(0);
}
length=filelength(fp);
ch=(char*)malloc(length);
fread(ch,length,1,fp);
*(ch+length-1)='