社区
C++ 语言
帖子详情
C++运行失败,高手指教
haiyan0106
2007-04-19 05:48:52
运行一个简单的C++程序,编译没有错,运行出错了。说是Debug assertion Failed,也不知道怎么回事,请大家指教一下。
...全文
291
10
打赏
收藏
C++运行失败,高手指教
运行一个简单的C++程序,编译没有错,运行出错了。说是Debug assertion Failed,也不知道怎么回事,请大家指教一下。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
060
2007-04-19
打赏
举报
回复
有看出一个,不知是不是错误所在
我认为
Queue<elemType> operator +(elemType e)
应当返回Queue<elemType>&, 引用类型.
如果按照lz的返回Queue<elemType> ,将在这个函数返回时,创建临时对象.
060
2007-04-19
打赏
举报
回复
是一个循环队列?
有一个错误
Queue(int First=0,int Last=0,int CurrentNum=0):_First(First),_Last(Last),_CurrentNum(CurrentNum)
{
_pArray=new elemType[MaxNum];
for ( int ix=0; ix < MaxNum; ++ix )
_pArray[ ix ] = 0;
// 既然使用了模版,这个等号右边就不要使用整型的0,可以使用默认构造函数elemType()
}
taodm
2007-04-19
打赏
举报
回复
太长!自己上调试器单步跟踪,看错在哪行。
yutaooo
2007-04-19
打赏
举报
回复
exit(1); 前的cerr有输出吗? 我觉得这里最可疑.
yutaooo
2007-04-19
打赏
举报
回复
看的我一身汗,也没看明白!
继续...
haiyan0106
2007-04-19
打赏
举报
回复
代码如下,大家指教一下。
#include<iostream>
using namespace std;
template <class elemType> class Queue;
const int MaxNum=10;
template <class elemType>
class Queue {
public:
//¹¹Ô캯Êý
Queue(int First=0,int Last=0,int CurrentNum=0):_First(First),_Last(Last),_CurrentNum(CurrentNum){
_pArray=new elemType[MaxNum];
// ³õʼ»¯ÄÚ´æ
for ( int ix=0; ix < MaxNum; ++ix )
_pArray[ ix ] = 0;
}
~Queue(){delete [] _pArray;}//Îö¹¹º¯Êý
bool Empty() const;//Åж϶ÓÁÐÊÇ·ñΪ¿Õ
bool Full() const; //Åж϶ÓÁÐÊÇ·ñÒÑÂú
Queue<elemType> operator +(elemType e);//Ïò¶ÓÁÐÖмÓÈëÔªËØ
elemType operator-();//´Ó¶ÓÁÐÖÐÌáÈ¡ÔªËØ
int getMaxNum(){return MaxNum;}//·µ»Ø»·ÐζÓÔÊÐí´æ´¢µÄÔªËØ¸öÊý×î´óÖµ
int getCurrentNum(){return _CurrentNum;}//·µ»Øµ±Ç°µÄÓÐÐ§ÔªËØ¸öÊý
void Display() const;//ÏÔʾ¶ÓÁÐÖеÄÖµ
private:
int _CurrentNum;//µ±Ç°µÄÓÐÐ§ÔªËØ¸öÊý
int _First;//¶ÓÊ×ÔªËØ
int _Last;//¶ÓÎ²ÔªËØµÄÏÂÒ»¸öλÖÃ
elemType* _pArray;//ÓÃÓÚ´æ·Å¶ÓÁеÄÊý×é
};
//Åж϶ÓÁÐÊÇ·ñΪ¿Õ
template <class elemType>
bool Queue<elemType>::Empty() const
{
return (_CurrentNum==0);
}
//Åж϶ÓÁÐÊÇ·ñÒÑÂú
template <class elemType>
bool Queue<elemType>::Full() const
{
return ((_Last+1)%MaxNum==_First);
}
//Ïò¶ÓÁÐÖмÓÈëÔªËØ
template <class elemType>
Queue<elemType> Queue<elemType>::operator +(elemType e){
if(Full()){
cout<<"¶ÓÁÐÒÑÂú!"<<endl;
}
else{
_pArray[_Last]=e;
_Last=(_Last+1)%MaxNum;
_CurrentNum++;
}
return *this;
}
//´Ó¶ÓÁÐÖÐÌáÈ¡ÔªËØ
template <class elemType>
elemType Queue<elemType>::operator-(){
if(!Empty()){
elemType e=_pArray[_First];
_First=(_First+1)%MaxNum;
_CurrentNum--;
return e;
}
else{
cerr<<"¶ÓÁÐÒѿգ¡"<<endl;
exit(1);
}
}
// ÏÔʾ¶ÓÁÐÖеÄÔªËØ
template <class elemType>
void Queue<elemType>::Display() const
{
for (int i =_First; i<_Last; i =(i++) % MaxNum)
cout<<_pArray[i]<<" ";
cout<<endl;
}
int main()
{
Queue<int> a;
a+10;
// a+14;
// a+3;
// a+6;
// a+10;
// a+14;
// a+3;
// a+6;
// a+10;
//a+14;
//a+3;
//a+6;
a.Display();
// int s=-a;
// cout<<s<<endl;
// a.Display();
// s=-a;
// cout<<s<<endl;
/// a.Display();
// s=-a;
// cout<<s<<endl;
// a.Display();
// s=-a;
// cout<<s<<endl;
// a.Display();
return 0;
}
VCLIFE
2007-04-19
打赏
举报
回复
难道用的是VS2005?
hellox
2007-04-19
打赏
举报
回复
原因很多。.代码呢?
iu_81
2007-04-19
打赏
举报
回复
指针没有初始化,或指针操作不当
mochen5460
2007-04-19
打赏
举报
回复
一般和内存关,数组越界一类的
vscode 中
C++
运行
编译
运行
多文件问题总结
本文详细解析在VSCode中进行
C++
多文件编译时常见的问题及解决方案,包括配置code-runner插件、task.json文件及环境变量,确保所有相关cpp文件正确编译。
行为树基本概念与BehaviorTree.CPP库在
C++
的代码实现
本文介绍了行为树的基本概念,尤其是BehaviorTree.CPP库在
C++
中的应用,包括节点类型、组合逻辑、自定义动作和条件、黑板和ports的使用,以及如何通过XML动态创建行为树。
C++
开源 unzip.cpp解压zip包
失败
,企业微信自动生成的zip包格式不标准导致的
本文记录了一次因zip压缩包格式不标准导致
C++
开源unzip.cpp解压
失败
的问题排查过程。通过对压缩包的逐层分析与调试,最终定位到问题根源在于特定工具生成的zip包不符合标准。
C++
一个函数调用其他.cpp文件中的函数
本文详细介绍了在使用VC或VS创建
C++
项目时的文件组织方式,特别是源文件夹下的.cpp文件如何通过main函数调用其他文件中的函数,实现模块化编程。文章通过具体示例解释了如何在一个
C++
项目中合理地分布和调用多个函数,以及如何避免函数名冲突。
C++
程序在Windows系统上启动
失败
与
运行
卡死问题排查实战
本文介绍了在Windows XP系统上,
C++
程序启动
失败
和线程卡死的排查过程。由于VS2017默认编译的程序不支持XP,需要配置为使用VS2010。程序启动
失败
是由于调用了不支持XP的MFGetStrideForBitmapInfoHeader接口,解决方案是移除Media Foundation相关调用。线程卡死问题通过Windbg分析发现是由于mixerClose接口导致,解决方法是检查并修复相关代码。
C++ 语言
65,213
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章