访问内存 只要知道内存地址就可以了
不过 一般都是动态分配的。
如果要访问固定内存地址 可以
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)='