热门

最新

红包

立Flag

投票

同城

我的

发布
weixin_52172511
「已注销」
6 年前
trueweixin_52172511

有好心人能看一下我这个打印素数的程序哪里错了吗,为什么我打印出来的是2和3到99间的所有奇数啊
还有第一个int处不应该写函数类型吗,我用bool会报错,而我如果在前面加一个宏定义就只会警告,这应该是编译器的问题吧,,,但是我的函数不是bool类型的吗?那为什么我在函数定义处写char和int都不会报错呢?
我可能描述的不够清楚,望多多包涵

CSDN App 扫码分享
分享
评论
3
打赏
  • 复制链接
  • 举报
下一条:
写了个类,类里在堆上创建了个数组空间,调用的时候直接对数组指针++了 p1.arr[0]=2; p1.arr[1]=2; cout<<p1.arr++<<endl; cout<<p1.arr<<endl; cout<<&p1.arr[0]<<endl;最后析构的时候,报了pointer being freed was not allocated的错误,大意是释放了没有分配的空间。由于这个arr是公开的属性,所以,改变了指针的首地址,然后delete[] this->arr;这个语法大概会释放掉之前分配长度的栈空间,所以就尾部超出了一个数据长度的空间。当我最后调整回arr一开始的首地址后,就不报错了。可以看出delete[] 这个语句的本质是啥。 if(this->arr!=NULL) { delete[] this->arr; this->arr=NULL; this->m_capacity=0; this->m_size=0; }
立即登录