草庐IT

empty2null

全部标签

c++ - 有人可以打破这条线 gcc -E -dM - </dev/null

刚刚遇到这个让我惊呆了的人:gcc-E-dM-这部分让我感到困惑:- 最佳答案 这给出了gcc中所有预定义宏的列表。-E表示运行预处理器。-dM表示从预处理器中转储预定义的宏。-用于从标准输入读取,而/dev/null仅提供一个空源文件。 关于c++-有人可以打破这条线gcc-E-dM- https://stackoverflow.com/questions/1529051/

c++ - NULL 指针与 static_cast 的兼容性

Q1。为什么在static_cast中使用NULL指针会导致崩溃,而dynamic_cast和reinterpret_cast会返回NULL指针?问题发生在类似于下面给出的方法中:voidA::SetEntity(B*pEntity,intiMyEntityType){switch(iMyEntityType){caseENTITY1:{Set1(static_cast(pEntity));return;}caseENTITY2:{Set2(static_cast(pEntity));return;}caseENTITY3:{Set3(static_cast(pEntity));ret

Springboot在编写CRUD时,访问对应数据函数返回null

1.我遇到了什么问题我在学习springboot,其中在编写CRUD时发现访问数据的函数执行下去返回值是null但是其它部分正常。下面是我的错误代码pojopublicclassBot{@TableId(type=IdType.AUTO)privateIntegerid;privateIntegeruser_id;privateStringname;privateStringdescription;privateStringcontent;privateIntegerrating;@JsonFormat(pattern="yyyy-MM-ddHH:mm:ss")privateDatecreat

c++ - std::ofstream == NULL 不会为 -std=gnu++11 编译,任何解决方法?

考虑以下代码:std::ostreamfile;if(file==NULL)std::cout它在通过-std=gnu11(GCC5.2的默认值)或仅使用时完美编译gcccode.cpp-oa.out.不过,-std=gnu++11失败了:nomatchfor‘operator==’(operandtypesare‘std::ofstream{akastd::basic_ofstream}’and‘longint’)`最简单的解决方法是什么?详细信息:我必须使用std=gnu++11才能访问shared_ptr定义。此外,我的一些代码是自动生成的,修改生成器会付出合理的努力-所以我想知

C++引用、内联函数、auto关键字介绍以及C++中无法使用NULL的原因

文章目录一、引用1.1引用概念1.2引用特性1.3常引用1.4使用场景1.4.1做参数1.4.2做返回值1.5引用和指针的区别1.6小结一下二、内联函数2.1内联的概念2.2内联的特性2.3【面试题】三、auto关键字(C++11)3.1类型别名思考3.2auto简介四、auto的使用细则4.1基于范围的for循环(C++11)4.2范围for的使用条件五、指针空值nullptr(C++11)一、引用1.1引用概念C++是C语言的继承,它可进行过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。引用(reference)就是C+

c++ - 为什么我在声明中说 int *p = NULL ,但在测试中说 p != NULL ,为什么 *p != NULL 不匹配声明?

在C++中,如果我们将指针值赋给NULL,为什么不要我们检查*p!=NULL而不是p!=NULL?我在教程中找到了这段代码。int*p=NULL;char*q=NULL;//...if(p!=NULL)cout提前致谢 最佳答案 *正在做两件不同的事情。当您声明变量时,这意味着该变量是一个指针。当您使用变量时,它意味着“取消引用”,即获取指针指向的位置的值。两种完全不同的含义。 关于c++-为什么我在声明中说int*p=NULL,但在测试中说p!=NULL,为什么*p!=NULL不匹配声

c++ - 如何从模板类中的方法返回 NULL

我有一个看起来像这样的方法:templateTTest::FindItem(Titem){if(found)//returnoriginalvalue,noproblemhereelse//IwanttoreturnNULLhere,like:returnNULL;}这在运行时的某些情况下会失败,因为某些值无法在C++中转换为NULL,例如std::string。我应该遵循什么方法? 最佳答案 如果你想按值返回并且不想弄乱返回指针和新建/删除,你可以这样做:templateboost::optionalTest::FindItem(

c++ - (cin >> buf && !buf.empty()) 中的第二个条件是否多余?

这个问题在这里已经有了答案:Isitpossibletoreadanemptystringfromcinandstillgettruefromcin.good()?(1个回答)关闭7年前。我正在阅读C++入门书,并对以下代码示例感到好奇:stringbuf;while(cin>>buf&&!buf.empty()){if(buf[0]!='_')continue;//getanotherinput//theinputstartswithanunderscore;processbuf...}循环应该忽略不以下划线开头的单词并处理以下划线开头的单词。我的问题是关于条件(cin>>buf&&

c++ - 我什么时候使用 "__attribute__((nonnull))"与 "not_null<T*>"?

我习惯于使用__attribute__((nonnull))表达不应为空的指针时。voidf(int*ptr)__attribute__((nonnull));intmain(){int*ptr=newint(1);f(ptr);}voidf(int*ptr){/*impl*/}但是,对于GSL,还有not_null包装类型。voidfunction1(gsl::not_nulln);voidf(gsl::not_nulln);intmain(){int*ptr=newint(1);f(ptr);}voidf(gsl::not_nulln){/*impl*/}假设语言设施支持GSL版本

c++ - 从 getline() 返回的字符串是否以 null 结尾?

在谷歌搜索了一段时间后我不太确定的一件事是getline()的返回字符串。希望在这里得到证实。std::getline这个全局版本返回一个std::string所以它不一定是空终止的。一些编译器可能会附加“\0”,而其他编译器则不会。std::istream::getline此函数返回一个c风格的字符串,因此可以保证该字符串以null结尾。是这样吗? 最佳答案 空终止是一个仅适用于C字符串的概念;它不适用于std::string的对象-他们让您通过调用size()找到尺码,并且不需要空终止。但是,从std::string返回的字符串