记录下遇到的两个小问题,在/home/stp/workspace/src/at/test/目录下有一个文件a.cpp,代码简示如下:
#include "../query_result_parse.h"
class A{
public:
struct B{
int x;
};
public:
B b;
};
int main(){
int a=fun(); // 编译时该函数找不到
A* a;
a->B.x=1; // 出现段错误
return 0;
}
vscode编译代码
vscode其实是调用gcc来编译代码的,点击运行,vscode执行如下编译语句:
cd "/home/stp/workspace/src/at/test/" && g++ a.cpp -o a && "/home/stp/workspace/src/at/test/"a
然而,出现关于fun()错误提示(找不到),这是由于query_result_parse.cpp没有编译的结果,将编译语句改成:
cd "/home/stp/workspace/src/algo_tran_public/test/" && g++ a.cpp ../query_result_parse.cpp -o a && "/home/stp/workspace/src/algo_tran_public/test/"a
成功运行
没有分配地址出现段错误
这是由于指针a并没有指向一块具体的地址,无法进行赋值,将A* a
改成A* a=new A()
就好了