訪問內存 只要知道內存地址就可以了
不過 一般都是動態分配的。
如果要訪問固定內存地址 可以
unsigned char * p = (unsigned char *)0xB1234456;//內存地址值
然後通過*p訪問該地址。
『貳』 「c語言允許直接訪問物理地址,能進行位操作」是什麼意思啊
就是使用C語言能夠直接定位物理內存的地址,即通過內存地址(如0xfa283401)得到該地址上的數據。
計算機中的數據都是以位(bit,比特)來作為基本單位的,C語言能直接對位進行操作,包括求與,並,或,異或,非等。
物理地址是一個很寬泛的概念,磁碟,內存等存儲設備都有物理地址的說法。
物理內存地址指的是硬體實現上物理內存展現給外部匯流排訪問的編碼地址,其范圍等於物理內存的大小.
大家常說的物理內存就是指安裝在主板上的內存條,其實不然,在計算機的系統中,物理內存不僅包括裝在主板上的內存條(RAM),還應該包括主板BIOS晶元的ROM,顯卡上的顯存(RAM)和BIOS(ROM),以及各種PCI、PCI-E設備上的RAM和ROM。
地址空間就是對物理內存編碼(地址編碼)的范圍。
所謂編碼就是對每一個物理存儲單元(一個位元組)分配一個唯一的地址號碼,這個過程又叫做「編址」或者「地址映射」。這個過程就好像在日常生活中我們給每家每戶分配一個地址門牌號。與編碼相對應的是「定址」過程——分配一個地址號碼給一個存儲單元的目的是為了便於找到它,完成數據的讀寫,這就是「定址」,因此地址空間有時候又被稱作「定址空間」。系統不僅要給主板上的內存條編址,還要給上述的其它物理內存編址;它們都被編在同一個地址空間內,編址後的物理內存就可以被系統資源使用或佔用。
『叄』 C語言能直接訪問內存嗎內聯匯編還是有什麼其它辦法
內聯匯編可以訪問寄存器的。C里直接用指針訪問啊,void *p = malloc(m_size);這樣,p段的內存想幹啥就幹啥。這時訪問的是堆。記得一次課後作業是做個Memorybomb,利用目標代碼的gets(),人為製作一段包含功能的內存片。(第一次嘗到做黑客的滋味.雖然小白級別)
希望採納
『肆』 C語言問題,直接訪問固定內存地址編譯器報錯
就沒看過這樣寫程序的。你如果非要訪問那個內存的話, 可以用內嵌匯編的方式訪問。
『伍』 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)='