当前位置:首页
开发技术指南» 文章正文
    引言:

 ·原创:你为什么聊天    »显示摘要«
    摘要: 本帖论点:男生为什么要聊天? 女生为什么聊天? (本帖所指的聊天均为网上聊天!) 可能的原因: 寂寞,无聊,求助,技术交流,感情交流(陌生的),感情交流(亲人,同学朋友),骗钱,骗色 还有很多不可告人的秘密就不举了哈, 比如宣传发愣功 希望大家诚心跟帖说明你聊天,或者你知道的聊天的理由! 我先来: 2,交流技术 1,和女朋友聊天 ps:我承认在才用qq半年内喜欢和异性聊天,但这种情况早在半......
    摘要: effective c++中的一个例子: //////////////////////////////////////////////////////////////////// #define max(a,b) ((a) > (b) ? (a) : (b)) 这个语句有很多缺陷,光想想都让人头疼,甚至比在高峰时间到高速公路去开车还让人痛苦。 无论什么时候你写了象这样的宏,你必须记住......


有意思的溢出问题

char   aa[1];  
  char   *   bb   =   "ssss";  
  strcpy(aa,bb);  
  AfxMessageBox(aa);  
  应该溢出了,aa应该等于"0/"结果是aa为"ssss"  
   
  大家谈谈

NO.1   作者: WFQS

应该溢出才对啊~~~~

NO.2   作者: wanguodu

几个字节的溢出不一定马上产生异常,因为被非法改写的内存不一定就是非法内存(未经分配的内存)。比如说如果是在堆栈里4、5个字节的堆栈改写一般不会导致堆栈越界,只是可能会影响紧接着的几个局部变量的值,从而导致其它问题。

NO.3   作者: FreeFice

其实,程序本身已经产生了溢出,仅仅是因为该数组边上恰好没有其它数据,所以才不容易发觉出来。  
  假设程序是这样:  
        char   D[3],A[1],C[3],*B   =   "ssss";  
        cout<<A<<endl;  
        cout<<C<<endl;  
        cout<<D<<endl;  
        cout   <<   int(A)   <<":"<<int(C)<<":"<<int(D)<<":"<<int(B)<<endl;  
        strcpy(A,B);  
        cout   <<A<<endl;  
        cout   <<B<<endl;  
        cout   <<C<<endl;  
        cout<<D<<endl;  
  那么,是否溢出就变得很明显了。

NO.4   作者: bingbox_1984

什么叫溢出??我不懂,能不能解释一下??  
  我只知道这样内存中在aa后的空间的内容被改写了,这样很危险;


 ·初学,宰相的麦子问题。    »显示摘要«
    摘要: 宰相的麦子:相传古印度宰相达依尔,是国际象棋的发明者。有一次,国王因为他的贡献要奖励他,问他想要什么。达依尔说:“只要在国际象棋棋盘上(共64格)摆上这么些麦子就行了:第一格一粒,第二格两粒,……,后面一格的麦子总是前一格麦子数的两倍,摆满整个棋盘,我就感恩不尽了。”国王一想,这还不容易,刚想答应,如果你这时在国王旁边站着,你会不会劝国王别答应,为什么? 请写出算法,并说出用for和用wh......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE