Run-Time Check Failure #2 - Stack around the variable 'a' was corrupted.
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Run-Time Check Failure #2 - Stack around the variable 'a' was corrupted.相关的知识,希望对你有一定的参考价值。
void Graph::Create_DG()//创建一个有向图图的邻接链表表示
//参考第五次的相关实验内容,独立完成一个有向图的邻接表的创建,并
//且最后输出该邻接表,以便判断邻接表是否建立正确
G.arcnum = 16;
G.vexnum = 12;
string v1; //弧的起点
string v2; //弧的终点
int v1locate; //弧的起点 v1 的存储的位置
int v2locate; //弧的起点 v2 的存储的位置
ArcNode * p;
int v,m=0,n=0;
char s[2];
for(v=0;v<G.vexnum;v++)
sprintf(s,"c%d",v+1);
G.vertices[v].data = s;
G.vertices[v].firstarc = NULL;
//indegree[v] = 0;
for(int i=0;i<G.vexnum;i++)
v2 = G.vertices[i].data;
v2locate = locatevex(v2);
cout<<"请输入第"<<i+1<<"个顶点的先决条件个数:";
cin>>m;
for(n=0;n<m;n++)
cout<<"请输入第"<<i+1<<"个顶点的第"<<n+1<<"个先决条件:";
cin>>v1;
v1locate = locatevex(v1);
p=new ArcNode();
p->adjvex = v2locate;
p->nextarc = G.vertices[v1locate].firstarc;
G.vertices[v1locate].firstarc = p;
//++indegree[v2locate];
cout<<endl;
cout<<endl;
cout<<"该图的邻接表为"<<endl;
for(int k=0;k<G.vexnum;k++)
p=G.vertices[k].firstarc;
cout<<k<<" "<<G.vertices[k].data;
while(p!=NULL)
cout<<"->"<<p->adjvex;
p=p->nextarc;
cout<<endl;
cout<<endl<<"s";
这是为了拓扑排序构造一个邻接表,最后cout<<“s“我是为了判断是否运行到最后 ,结果输出了S 然后往后就没有任何代码了,为什么还是出现Run-Time Check Failure #2 - Stack around the variable 'a' was corrupted.求大神没分了不好意思
# define MAX_VEX_NUM 20//宏定义数组最大
int indegree[MAX_VEX_NUM];//记录顶点的入度
string classname[12]="基","学","构","言"
,"语分析","计理","理","统","s学","数","普理","分析";
stack<int>mystack;
typedef struct ArcNode //定义邻接表结构
int adjvex; //该弧所指向的顶点的位置
struct ArcNode *nextarc; //指向下一条弧的指针
ArcNode;
typedef struct VNode //定义顶点结构类型
string data; //存放顶点信息
ArcNode *firstarc; //指向第一条依附于该定点的指针
VNode,Adjlist[MAX_VEX_NUM];
typedef struct
Adjlist vertices;
int vexnum; //顶点数
int arcnum; //边数
ALGraph;
这是上面的 类什么的就不写了 貌似没什么关系
RAD Studio 10 安装失败 提示错误 License status check failure解决办法
最近在安装RAD Studio 10.1 Berlin 时,运行光盘中的setup.exe,在第一页勾选 lincense agreement后下一步,提示如下错误,无法进行安装。
License status check failure
License status check failure (Error code: 255). Please try again later, or contact support.
通过一番搜索和尝试得到以下解决办法:
问题原因:
由于电脑中已经安装过其他版本的RAD Studio,而不同版本的RAD Studio共享了注册授权信息到该路径 C:\ProgramData\Embarcadero(此路径是WIN10中的,WIN7 WIN8应该一样,没找到则全盘搜索Embarcadero)。
而安装程序setup.exe在当时会搜索该路径下的.cgb_license 和 .licenses\.cg_license以及相关是slip文件,判断到其中没有符合当前正在安装版本的授权信息,最终报错。
总体上可以认为是setup.exe的一个BUG,导致无法多版本共存安装。
解决方法:
1. 在 C:\ProgramData\Embarcadero 中创建相应版本的文件夹(如XE7 XE8 XE5 或9.0 15.0 16.0 等),将文件.cgb_license 和文件夹 .licenses\.cg_license剪贴到创建的文件夹中。
如 当前已安装的版本是XE7 则:
A. 将原来的文件 C:\ProgramData\Embarcadero\.cgb_license 移动到 C:\ProgramData\Embarcadero\XE7\.cgb_license
B. 将原来的文件夹 C:\ProgramData\Embarcadero\.licenses 移动到 C:\ProgramData\Embarcadero\XE7\.licenses
2. 搜索硬盘中 cglm.ini文件,一般存在RAD Studio安装目录的bin中 还有InterBase相关目录也有,C:\ProgramData\Embarcadero中也可能有,总之打开所有搜索到的cglm.ini文件。
部分内容如下:
[Embarcadero License Management]
RootDir=${MODULE_DIR}\..
LicenseDir=${ROOTDIR}\License
InfoDir=${COMMON_APPDATA}\Embarcadero\.licenses
SlipDir=${COMMON_APPDATA}\Embarcadero\
A. 修改其中的 InfoDir 和 SlipDir,XE7则参考如下修改
InfoDir=${COMMON_APPDATA}\Embarcadero\XE7\.licenses
SlipDir=${COMMON_APPDATA}\Embarcadero\XE7\
3. 修改完启动RAD Studio,确认没有问题再安装新版本,有问题估计只能恢复原样了
另外,网上有人说把 C:\ProgramData\Embarcadero 下面所有文件和文件夹删除,这种做法应该也可以,但是有点暴力,而且可能会导致已安装的旧版本无法正常运行。
以上是关于Run-Time Check Failure #2 - Stack around the variable 'a' was corrupted.的主要内容,如果未能解决你的问题,请参考以下文章
c++ Run-Time Check Failure #0 - ESP 的值未正确保存在...检查简单工作线程的点
Loadrunder脚本篇——Run-time Settings之Preferences
记一次Ubuntu宕机 Failure:File system check of the root filesystem failed