• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
SU_DA
博客园 | 首页 | 新随笔 | 新文章 | 联系 | 订阅 订阅 | 管理

2014年3月27日

关于类无限递归问题(转)
摘要: 1.复制构造函数没有用引用而是值或指针class A { public: A(const A a) { ... } //因为每次传入一个对象时,会调用这个对象的拷贝构造函数,造成无限循环 A(const A *a) { ... } //同上 A(const A &a) { ... } ~A() { if(p!=NULL) { delete p; p=NULL; } } A* p; };2.析构函数无线循环class A { public: A() { p=this; } ~A() { if(p!=NULL) { delete p; p=NULL; } } A* p;... 阅读全文
posted @ 2014-03-27 20:00 SU_DA 阅读(417) 评论(0) 推荐(0)
 
 

2014年3月9日

子函数中给指针分配地址问题
摘要: 下面一段代码,本意是在子函数中给p分配地址并赋值。但程序在printf("%d\n",*p);时崩溃void test(int *p2){ p2 = (int *)malloc(sizeof(int)); *p2 = 8;}void main(){ int *p1 = NULL; //printf("%d\n",p1); test(p1); //printf("%d\n",p1); printf("%d\n",*p1); free(p);}原因:当main在堆栈中定义了指针p1,函数test也在自己的堆栈中定义了p 阅读全文
posted @ 2014-03-09 17:41 SU_DA 阅读(438) 评论(0) 推荐(0)
 
 

2014年3月8日

第一个随笔- O(n) 产生含n个不重复元素的随机数组
摘要: eg:A[0,1,2,3,4,5,6,7]; 函数rand()用来生成随机数组下标for(int i = 0; i < n;i++){ int j = rand()%(n-i)+i; //j = [i..n] A[i]^=A[j]^=A[i]^=A[j];}//从i=0开始,随机产生i..n中的一个数j,将A[i]和A[j]交换。//因为i是递增的,j=rand(i..n),避免了i和j重复的可能。 阅读全文
posted @ 2014-03-08 21:00 SU_DA 阅读(188) 评论(0) 推荐(0)
 
 

公告


博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3