20210616我的新目标cpp

Jun 16, 2021

我的新目标cpp

最近我的主要学习路线是C++. 我感到学go 之后还是有部分在web路上精疲力尽,我需要一个服务端的底层语言进行支撑。前年学go,去年写了两个gin 服务。本想今年年初好好深入学习,但是接手一个很大的平台服务,导致直到现在6.16号才终于稍稍缓和下来。

我痛定思痛想知道自己真的想要什么。我是想继续web开发,api调用大法还是写轮子,搞定底层的。公司C++招聘看了下简历,都是半年C++能培养;而且需求量还是很大。一直说C++越久越香。

我觉得C++估计能给我点答案;而go 当前让我感觉无法给我想要的那个答案。我知道那个答案,我只是想他自己能直接告诉我。

当时觉得go 也有指针,也有引用,跟我以前的OC很类似。于是花了好多时间认真学着。但是感觉杂乱不堪,最多只是让我用另一种语言写后台。还是没有建树。。

不是nodejs不行。而是nodejs 在最需要性能的时候,没人提供binding。一个大锤子加一个底层机械的组合。也许我自己可以给自己binding?所以我来了。


今天刚好遇到个自己没理解清楚,问了个大佬突然明白的问题。

这样编译没有问题,但是执行时报错: pvalue被释放了! 代码:

1
2
3
4
5
6
7
8
9
10
void heapAndStack() {
double* pvalue = new double; // pvalue 申请了堆空间

double aa = 29494.99; // aa申请了栈空间。
pvalue = &aa; // pvalue 获得了 aa 的地址(栈的地址) 此时可以认为pvalue 已经指向了栈,也就是*aa

cout << "Value of pvalue : " << *pvalue << endl;

delete pvalue; // 这时释放栈则报错: 栈是自动内存回收的;指针才可以delete
}