变量(结构)的大小是否有限制,可以通过指针传递给函数。也可以定义一个变量大小(结构中的结构等等)和数组大小从100-500不等) 为了安全运行程序。(没有堆栈溢出,内存问题,指针损坏) 这是参考具有限制为64K至512K的存储器的嵌入式系统
答案 0 :(得分:2)
您似乎有三个问题:
使用指针指向一块大小的内存:这里的限制是指针大小的限制 - 无论是32位还是64位指针。但实际上,没有机器可能有足够的内存来使64位限制成为问题。
我可以在堆栈上声明一个多大的结构(这意味着某个级别的本地声明):堆栈大小在所有硬件上受限制,通常比堆更受限制,堆栈不适用于堆栈大型对象和堆栈限制可能是限制性的,尤其是在嵌入式系统中。这里的问题不是单个堆栈对象的大小,而是受限制的堆栈总大小。
我可以从堆中分配多大的结构(这意味着用new
或malloc
分配的结构:堆是可用内存的“剩余”;这个区域通常更大大型分配的最佳位置;同样,最大空间完全取决于执行环境。进程的任何时候都有最大量的连续堆,可以分配给最大的对象。
答案 1 :(得分:0)
就C语言而言,结构的最大尺寸是
2 ^ (8*sizeof(size_t))
个字节,
其中^
应该被理解为""的权力。
除此之外,限制取决于您的特定系统。