V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Tony042  ›  全部回复第 21 页 / 共 39 页
回复总数  772
1 ... 17  18  19  20  21  22  23  24  25  26 ... 39  
2019-08-11 08:34:50 +08:00
回复了 Tony042 创建的主题 问与答 关于 C++指针的困惑
@AlohaV2 还有一个问题求问,改变了 string 的值后,之前那个 string 是不是已经被释放了,没有出现内存泄漏吧?还是有点虚
2019-08-11 07:57:13 +08:00
回复了 Tony042 创建的主题 问与答 关于 C++指针的困惑
@gggxxxx 我也觉得是这样,之前 google 了不少,发现大家都是书中这种做法,就搞得我有点懵,久闻 C++深坑居多,怕不小心一脚踩进去,就发帖来问问大家,谢谢层主的回答
2019-08-11 07:39:45 +08:00
回复了 Tony042 创建的主题 问与答 关于 C++指针的困惑
@AlohaV2 我刚才试了下,没问题的,可以成功拷贝数据,GetString 也可以正常输出数据,bar 和 foo 也正常析构了。
2019-08-11 03:54:53 +08:00
回复了 Tony042 创建的主题 问与答 关于 C++指针的困惑
@across 我觉的是深拷贝吧,因为我用构造函数(默认构造函数和复制构造函数)的时候都已经重新 new 了一个指针,并没有让指针指向同一块内存啊,我觉得可能就像 @choury 说的那样,不怎么通用,我这样做是 string 重载了
2019-08-10 23:03:10 +08:00
回复了 Tony042 创建的主题 问与答 关于 C++指针的困惑
@AlohaV2 不好意思,刚才没有放出全部代码
```C++
class HasPtr
{
public:
HasPtr(const std::string &s = std::string()) : ps(new std::string(s)), i(0) {}
HasPtr(const HasPtr &);
string GetString() { return *ps; };
HasPtr &operator=(const HasPtr &);
~HasPtr() { delete ps; }

private:
std::string *ps;
int i;
};

HasPtr::HasPtr(const HasPtr &orig) : ps(new std::string(*orig.ps)), i(orig.i)
{
}

HasPtr &HasPtr::operator=(const HasPtr &hp)
{
auto new_p = new string(*hp.ps);
delete ps;
ps = new_p;
i = hp.i;
return *this;
}
```
这两个指针我在初始化的时候已经指向了不同的地址,我感觉我在做*this.ps=*hp.ps 的时候是将 this 指向的地址的内容改变了,是改变了 this.ps 指向的 string 的值,而并没有改变指针的值,也就是说并没有改变指针的地址,所以不会造成悬挂指针吧?
@maleclub 忘了说了,ID 是 base64 加密过的
@maleclub WeChat: c2hpbHlfY3N1
Beancount 自带 importer,用个写几个 python 类就解决了自动解析的需求,https://github.com/beancount/smart_importer
2019-07-04 20:50:06 +08:00
回复了 Tony042 创建的主题 C 关于 C++ 函数传入指针的问题(小白求教)
@b00tyhunt3r 楼里面的大佬说的应该是对的,我在初始化 PolyQueue 类型指针的时候,是调用了另一个函数显示初始化它们为 nullptr,但是我现在也不太明白为什么 https://paste.ubuntu.com/p/tD66H7V74M/这个代码运行起来没问题,而运行你的代码就会 stackfault
2019-07-04 20:47:22 +08:00
回复了 Tony042 创建的主题 C 关于 C++ 函数传入指针的问题(小白求教)
@jmc891205 那为什么这个代码 https://paste.ubuntu.com/p/tD66H7V74M/运行没问题,但 @b00tyhunt3r 的就有问题呢,我在 windows 下用 clang 跑了一遍,遇到的也是相同的情况
2019-07-04 12:53:54 +08:00
回复了 Tony042 创建的主题 C 关于 C++ 函数传入指针的问题(小白求教)
@zjsxwc 对了,能麻烦告诉下你用的 IDE 是什么么,看着很不错哇
2019-07-04 12:52:24 +08:00
回复了 Tony042 创建的主题 C 关于 C++ 函数传入指针的问题(小白求教)
@jmc891205 对的,我现在理解了,值已经加在链表上面了,但是 rear 没有更新,谢谢您
2019-07-04 12:51:34 +08:00
回复了 Tony042 创建的主题 C 关于 C++ 函数传入指针的问题(小白求教)
@zjsxwc 对的,没错,实际上值已经加上了,现在理解了
2019-07-04 12:49:53 +08:00
回复了 Tony042 创建的主题 C 关于 C++ 函数传入指针的问题(小白求教)
@srt180 谢谢讲解,感觉有点转过来了,AddPolynode 和 Attach 的区别还是在于指针更改了没有,由于 Attach 更改了指针所以要用引用,刚学 C++没多久,遇到指针还是很迷,还好有你们的帮助
2019-07-04 12:44:13 +08:00
回复了 Tony042 创建的主题 C 关于 C++ 函数传入指针的问题(小白求教)
@zjsxwc xi 谢谢您的回复,我运行了您的,如果输出 pqp->rear->coef 的值的话,AttachTest 是不生效的,我在您的代码后面加了一个 cout 输出,请您瞅一下 https://paste.ubuntu.com/p/pzTNnPC74x/
2019-07-04 12:36:10 +08:00
回复了 Tony042 创建的主题 C 关于 C++ 函数传入指针的问题(小白求教)
@jmc891205 对的是这样的,可为什么没更新呢,我通过 attch 函数传入的那个参数值就是 Ptrl->Rear, 比如 Attach ( Ptrl->Rear,3,5)
2019-07-04 12:33:40 +08:00
回复了 Tony042 创建的主题 C 关于 C++ 函数传入指针的问题(小白求教)
@zjsxwc 我贴的代码是正确的代码,但是如果把 void Attach(Polynomial &rear, const int coef, const int expon)这个声明改成 void Attach(Polynomial rear, const int coef, const int expon) 这个函数就不生效了,所以我是想问 rear 和&rear 的区别
2019-07-04 12:31:19 +08:00
回复了 Tony042 创建的主题 C 关于 C++ 函数传入指针的问题(小白求教)
@srt180 但是两个都是指针呀,我目前的理解是传入指针指向的结构体里的指针与传值一样,如需修改得声明饮用,但是传指针的话是不用声明引用就可以直接修改的。
2019-07-04 12:27:04 +08:00
回复了 Tony042 创建的主题 C 关于 C++ 函数传入指针的问题(小白求教)
@zjsxwc 是的,谢谢你,代码是正确的代码,我的意思是,为什么把 Attach 函数第一个参数由&rear 改成 rear 就不对了呢
2019-06-24 09:15:05 +08:00
回复了 justou 创建的主题 程序员 即将去某超算中心工作
@justou 科学计算的研发工作门槛有点高,不仅得懂 C++还要有很高数学物理知识,专业性要求很高,个人猜测楼主可能会负责超算的运维比如服务器的维护,安装 compiler 和专业软件什么的
1 ... 17  18  19  20  21  22  23  24  25  26 ... 39  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2466 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 31ms · UTC 13:33 · PVG 21:33 · LAX 06:33 · JFK 09:33
Developed with CodeLauncher
♥ Do have faith in what you're doing.