动态或者静态分配分配结构体空间问题
#define M_COL 1000
//动态生成preItem数组
for (level=3;level<M_COL;++level)
{
struct NodePrelevel{
int *preItem;
//int preItem[M_COL];
int FristChild;
int LastChild;
};
struct NodePrelevel Pre[M_COL*(M_COL-1)/2];
//静态构造preItem1数组
//int preItem1[M_COL];
struct NodePrelevelK {
int preItem1[M_COL];
int FristChild;
int LastChild;
};
struct NodePrelevelK Prelevel[M_COL*(M_COL-1)/2];//pre的副本
for (int n=0;n<Lenk/*Len2+1*/;++n)
{
Pre[n].preItem=new int [level-2];
}
}
如果动态分配NodePrelevel的preItem,会出现栈溢出问题;
如果静态分配NodePrelevel的preItem,会出现如下问题:
automatic allocation exceeds 塅婩€?塅嬊_^昧?冟Ht0冭t+??
我该如何解决?
...全文
相关推荐
深入理解C语言指针和结构体
本课程的主要目的是通过介绍C语言的指针、指针变量、静态内存分配、动态内存分配以及结构体等知识,实现C语言到Java以及Python编程的一个完美过渡.
静态单链表
静态单链表静态单链表静态单链表静态单链表静态单链表
8-第八章_存储空间组织-1-2节.pptx
8-第八章_存储空间组织-1-2节.pptx
数据结构复习笔记-静态链表
图和代码相结合,详细讲解静态链表。通过生动活泼的对话让读者理解内村动态申请。
静态数据结构与动态数据结构.pdf
静态数据结构与动态数据结构 静态数据结构与动态数据结构 数据结构:计算机中组织和存储数据的⼀种特殊⽅式,以便能够有效地访问和修改数据,数据结构是数据值的集 合,它们之间的关系,以及可以应⽤于数据的函数或操作。 数据结构通常基于计算机在内存中的任何位置获取和存储数据的能⼒,由指针指定的⼀个位 串,表⽰⼀个内存地址,它可以存储在内存中,并由程序操作。因此,数组和记录数据结构基 于计算数据项的地址和算术运算;⽽链接的数据结构则是基于在结构内部存储数据项的地址。 静态数据结构:特点是由系统分配固定⼤⼩的存储空间,以后在程序运⾏的过程中,存储空间 的位置和容量都不会再改变。 动态数据结构:不确定总的数据存储量,⽽是为现有的每⼀个数据元素定义⼀个确定的初始⼤⼩的空间,若⼲个 数据元素分配若⼲个同样⼤⼩的空间;当问题的数据量发⽣变化时,数据的存储空间的⼤⼩也发⽣变化。如果数据量 增加,就重新向系统申请新的空间;如果数据量减少,就将现有的多余的空间归还给系统;使⽤时候才能明确所使⽤ 的数据有哪些属性字段,这些属性字段是什么类型的,⽆需提前明确定义每⼀个属性字段的名字、类型、所属层级。 根据笔者的外⾏理


