一个函数有一个最大的内存空间限制
成都创新互联公司是一家专注于成都网站设计、成都网站制作、外贸网站建设与策划设计,昌乐网站建设哪家好?成都创新互联公司做网站,专注于网站建设十余年,网设计领域的专业建站公司;建站业务涵盖:昌乐等地区。昌乐做网站价格咨询:18982081108
大概是int的10000
内存空间和程序本身定义的变量有关
带递归的程序内存空间是
本身定义的变量*递归层数
递归层数(就是从搜索树的高度)
这与C语言自身无关,属于运行时操作系统的问题,应该借助于操作系统的进程内存分配去向操作系统查询。如果用C语言的内存管理函数去计算,会相当麻烦,而且计算方法随着操作系统平台的不同而变化。
如果是在Windows环境运行,可以使用Windows的API函数GlobalMemoryStatusEx,返回的结构中dwTotalVirtual的值与最大值之间的差,就是当前进程所占用的内存空间大小。
在程序运行时,一个函数占用一段连续的内存。当调用一个函数时,实际上是跳转到函数的入口地址,执行函数体的代码,完成后返回。
函数指针指向一个函数的入口地址,也就是函数存储空间的首地址。
在C语言中,数组名代表数组的首地址,同样函数名代表了函数的首地址,因此在赋值时,直接将函数指针指向函数名就行了。
因此函数指针调用vs直接调用,占用的存储空间都是一样的。相当于数组指针和数组名的关系,指向的都是同一个数组。
局部变量存在函数体里面,比如转换成8086汇编(示意):
func: 定义变量
push ax
pop ax
ret
main: call func
满意请采纳,谢谢!
这个..直接sizeof(int);
sizeof(float);
...就可以,注意使用%u输出控制符
例如
printf("int数据类型占用%u字节\n",
sizeof(int));
输出就是
int数据类型占用4字节