50分,高手请进来一下,关于程序调试的问题

cranley 2005-12-17 11:03:40
队列代码:
#include "StdAfx.h"
#include ".\myqueue.h"

//initialize
template <class T> myqueue<T>::myqueue(void)
{
count = current = maxqueue;
}

//Insert item
template <class T> void myqueue<T>::push(const T &item)
{
if(count > 0)
{
itm[count] = item;
count--;
}
else
printf("队列下溢!");
}

//Return the top item
template <class T> T myqueue<T>::top()
{
if(current <= count)
{
printf("队列下溢!");
return NULL;
}
else
return itm[current];
}

//Return the top item and Delete it
template <class T> T myqueue<T>::pop_top()
{
if(current > count)
return itm[current--];
else
{
printf("队列下溢!");
return NULL;
}
}

//Calculate the size of stack
template <class T> int myqueue<T>::size()
{
return (current - count);
}

//Delete stack
template <class T> myqueue<T>::~myqueue(void)
{
printf("abcd\n");
}





调用队列竖式打印二叉树
template <class Type> void BST<Type>::PrintTree(BSTnode<Type> *sub_root)
{
int blank_num, i, h, line;
i = 1;
h = 0;
line = 0;
blank_num = node_num(sub_root);
myqueue<BSTnode<Type> *> q1;
BSTnode<Type> *temp_node;
temp_node = sub_root;
while(1)
{
if((temp_node != NULL) && (i == pow(2,h)))
{
line = 0;
h++;
if(h > height(sub_root))
break;
line++;
printf("\n");
printBlank(int(blank_num*(2*line-1)/pow(2,h)));
cout<<temp_node->data;
if(h <= height(sub_root))
{
q1.push(temp_node->left);
q1.push(temp_node->right);
}
i++;
}
else if((temp_node != NULL) && (i != pow(2,h)))
{
line++;
printBlank(int(blank_num*2/pow(2,h)));
cout<<temp_node->data;
if(h <= height(sub_root))
{
q1.push(temp_node->left);
q1.push(temp_node->right);
}
i++;
}
else if((temp_node == NULL) && (i == pow(2,h)))
{
line = 0;
h++;
if(h > height(sub_root))
break;
line++;
printf("\n");
printBlank(int(blank_num*(2*line-1)/pow(2,h)));
printf(" ");
i++;
}
else
{
line++;
printBlank(int(blank_num*2/pow(2,h)));
printf(" ");
i++;
}
if(h > height(sub_root))
break;
temp_node = q1.pop_top();
}
printf("\nhere\n");
getchar();
getchar();
}



编译没问题,运行出现“Run-Time Check Failure #2 - Stack around the variable 'q1' was corrupted.”
请认真看一下,拜托了。
...全文
109 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
快乐鹦鹉 2005-12-20
  • 打赏
  • 举报
回复
请认真看一下,拜托了。
==不如你自己调试一下啊。眼睛毕竟不如编译器,调试更容易找到问题所在。
cranley 2005-12-20
  • 打赏
  • 举报
回复
我调试了很多遍阿,但是我就是看不出是什么问题啊〉我希望高手能帮我指点一下。
文本关键字:程序设计/PHP/技巧 以前写了十天学会ASP,十天学会ASP.NET什么的,现在想想再写个PHP吧,也算比较全了。 PHP的调试方法我这里就不说了,外面很多文章都有介绍,也有很多不同的组合。我这里暂时是以 Apache web server 和 MY SQL 作为WEB服务器和数据库,在php-4.3.3下的环境做的程序。当然要简单的构建和访问查看数据库 PHPMYADMIN 不可少。 至于表单设计什么的,我这里也不想多说了,在《十天学会ASP》中已经有介绍。 下面简单介绍一下PHP的语法。 1、嵌入方法: 类似ASP的<%,PHP可以是,当然您也可以自己指定。 2、引用文件: 引用文件的方法有两种:require 及 include。 require 的使用方法如 require("MyRequireFile.php"); 。这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。 include 使用方法如 include("MyIncludeFile.php"); 。这个函数一般是放在流程控制的处理部中。PHP 程序网页在读到 include 的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。 3、注释方法: 4、变量类型: $mystring = "我是字符串" ; $NewLine = "换行了\n" ; $int1 = 38 ; $float1 = 1.732 ; $float2 = 1.4E+2 ; $MyArray1 = array( "子" , "丑" , "寅" , "卯" ); 这里引出两个问题,首先PHP变量以$开头,第二PHP语句以;结尾,可能ASP程序员会不适应。这两个遗漏也是程序上大多错误所在。 5、运算符号: 数学运算: 符号 意义 + 加法运算 - 减法运算 * 乘法运算 / 除法运算 % 取余数 ++ 累加 -- 递减 字符串运算: 运算符号只有一个,就是英文的句号。它可以将字符串连接起来,变成合并的新字符串。类似ASP中的& 这里也引出两个问题,首先PHP中输出语句是echo,第二类似ASP中的<%=变量%>,PHP中也可以。 逻辑运算: 符号 意义 < 小于 > 大于 <= 小于或等于 >= 大于或等于 == 等于 != 不等于 && 而且 (And) and 而且 (And) || 或者 (Or) or 或者 (Or) xor 异或 (Xor) ! 不 (Not) 今天就说到这里,明天说一下流程控制。
更多项目进度详情享:智能小车开源项目文章汇总 我们为什么要做这件事? 困境:“跪求指点”的菜鸟一年比一年多,有空搭理菜鸟的大神一年比一年少。 原因:很多时候不是大神不肯帮忙,而是各种零散、离奇、重复的问题,浇灭了他们“扶弱济贫”的心。 对策:电路城团队深谙两方的急迫和苦衷,作为一个技术交流平台应有的责任,于是有了《来实战》的栏目构想,即每期选定一个富有启发性和趣味性的开源项目,由硬件设计大神带队,引领一批自愿报名加入的同道爱好者,从项目析、思路梳理开始,逐步完成动手实践、项目调试,直到最后的完美再现和更进一步的功能升级。我们期望,今天的新手菜鸟,能用自己的勤勉好学,得到大神更多的关注和指导,更快加入硬件高手的行列;我们也期望,受益于这个项目的人们,也将更愿意帮助那些陷入迷茫的曾经的自己。 支持:电路城的美国兄弟工程师交流平台hackaday(www.hackaday.com)和摩尔吧视频平台(https://www.moore8.com/)... 关于开源项目,我们计划这样来操作: 1.对标摩尔吧中的中相关主题智能小车项目(基于恩智浦平台智能汽车),我们这次用基于意法半导体的STM32平台来打造多功能智能小车,最终实物性能如何?基于意法半导体平台的智能小车PK恩智浦智能小车,谁更胜一筹?电路城开源项目组现在开始就通过逐步实操并最终打造出来,最后实物演示操作对比。此外,我们将预留资源,增加创意点的功能:红外或者超声波避障、摄像头、激光测距、舵机等等(到时根据实际进度会有一定取舍调整)。 2.项目更新进度:每两天在《来实战》栏目上更新设计进度内容,在工程没有实质性进度的时候也可以在论坛发帖享进行实施困难点、设计技术难点和原理讲解及器件析等。 3.建立对应项目讨论群。利用现有已建立的技术Q群资源,我们在做每一个不同主题方向的项目时,为方便讨论同时活跃Q群用户,欢迎更多志同道合的小伙伴加进来参加开源项目讨论或给我们提供建议。 4.采购设计工具 工具:电焊台(刀头、尖头)、焊锡丝、吸锡器、助焊膏、烙铁架子带夹子、松香、热熔胶枪、螺丝刀、万用表、剪钳、镊子、钳子、海绵、美工刀、元器件收纳盒、手持钻孔机等等,以后可以慢慢完善。示波器以及信号源、多功能电源。 元器件及材料:采购电子元器件以及打板。 5.我们会定期举办开源项目直播交流,或制作一些项目设计过程中的小视频,在项目交流群中与大家享,感兴趣的小伙伴马上加入我们吧。 6.建立开源项目贡献者名单荣誉榜,不定期在本开源项目页面更新。项目结束后,对该开源项目贡献突出的小伙伴,我们评选出“开源之星”给予神秘大奖奖励。开源项目贡献者名单会被注明在最终的开源项目方案中。 7.期待更多的志同道合的技术大咖加入我们“开源项目智囊团”,出谋划策,为开源贡献自己应有的力量。 8.这是一个开源项目,项目最终会被享上传到“电路城-电路方案”频道,供大家免费下载。 智能小车开源项目开发周期 计划2020.3.5~2020.4.30内完成。 项目主要有以下几个阶段(每个阶段我们还会就开发过程中遇到的一些有价值的开发难点或经验教训,以直播的形式在摩尔吧开播,具体主题和时间后期持续更新,感兴趣的小伙伴可以关注下哈~): 第一阶段:设计的要求及技术指标 -硬件系统(确定硬件设计思路,出总体框图,完成主要器件选型及相关资料查找); -软件系统(确定程序流程框图,查看相关示例程序,一般传感器、相关模块会给示例程序); -设计方案介绍(整体设计方案的介绍,以及相关方案的对比); -工作原理介绍及说明(介绍功能参数、方案原理、相关科普); 第二阶段:硬件系统设计 -硬件系统各模块功能介绍(所用到的功能模块、传感器、少见器件学习以及出文章介绍); -原理图、PCB图或仿真图绘制(完成原理图设计,需制作实物还需进行PCB设计); -元器件选型与BOM表(跟据原理图设计同步确定元器件选型,给出具体BOM表); 第三阶段:软件系统设计 -使用单片机资源情况(单片使用资源介绍,完成一些基础的讲解,还有相关芯片器件); -软件系统各模块功能介绍(各功能模块程序设计流程图,程序实现原理); -程序编写及清单(进行总的程序编写,以及初步调试); 第四阶段:实物制作 -焊接(待元器件集齐,打板完成,进行焊接以及相关结构制作,模型安装等); -软件调试; -硬件调试(结合软硬件调试,完成程序修改,确保功能实现,验证硬件部没有问题); -设计结果析(测试功能、验证相关参数,有什么不足以及改正,对做的不好的地方留时间补救); -测试过程(完整测试的发表,实测); 第五阶段:项目总结 -完成知识总结等收尾工作; -整理打包完整的开源方案所有资料; -开源项目突出贡献者名单公布及颁发奖品。

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧