C语言一个函数里是不是不能有太多变量
函数执行时,函数内的局部变量的存储单元都是在栈上的,栈有内存限制,多了会栈溢出,那么就是说一个函数不能有太多局部变量吗?那么一个大程序要处理很多变量要怎么实现,分成几个函...
函数执行时,函数内的局部变量的存储单元都是在栈上的,栈有内存限制,多了会栈溢出,那么就是说一个函数不能有太多局部变量吗?那么一个大程序要处理很多变量要怎么实现,分成几个函数?
展开
4个回答
展开全部
更多追问追答
追问
怎么用指针实现大数组呢?是用malloc在堆区申请一块内存,用指针调用吗?顺便问一下,堆区主要作用是什么啊,全局和静态变量存在静态区了,局部变量存放在栈区,代码存放在代码区了,那堆区呢?算是栈和静态区的扩展吗
追答
指针,还没有学习么?malloc和new(C++用法)都可以分配内存。
你的几个术语混着用了。。。。
栈stack中分配局部变量空间,堆区heap是向上增长的用于分配程序员申请的内存空间,也就是指针等的空间。
另外还有静态区是分配静态变量,全局变量空间的;只读区是分配常量和程序代码空间的;以及其他一些分区。
这些之中,堆,是最大的,其它都比较小,而大小限制,根据编译环境和工程设置等原因,有所不同,没有一个确定的数值,例如stack的空间,最小的4k,而VC6环境下为64k。
展开全部
一般情况下足够了,变量不能太大,比如定义一个100000的float数组等,如确实需要可以定义在外部,通过全局变量或指针操作。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
函数内的局部变量,函数被调用一次,放在栈里面一次,调用结束后就释放了,不用太担心这个问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先,C语言可以跨平台,你打算编写一个用在哪里的程序呢?电脑上? 还是芯片上? 不同的硬件的存储单元是大小和堆栈的方向是不同的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询