草庐IT

null-test

全部标签

openssl3.2 - 测试程序的学习 - test\sanitytest.c

文章目录openssl3.2-测试程序的学习-test\sanitytest.c概述笔记添加好实现的工程效果ENDopenssl3.2-测试程序的学习-test\sanitytest.c概述openssl3.2-测试程序的学习重建工程参考makefile,将该加的实现加入vs2019工程,不能无脑添加,否则编译不过.这个工程是基础测试(数据类型啥的),没学到东西.笔记从makefile中找到的实现添加线索:/*Getcurrenttime*/OSSL_TIMEossl_time_now(void);test\sanitytest-bin-sanitytest.obj:test\sanityte

C++:即使被转换的对象不是 NULL,dynamic_cast 也会导致 SEGFAULT。怎么会这样?

假设我有一个类A和一个派生自A的类B。现在,我想使用dynamic_cast(见下文)将constA*(称为“a”)转换为B*。如果“a”真的是B*,那么我得到的对象指针应该没问题。如果“a”不是B*,那么我将得到NULL。constA*a=newB();constB*b=dynamic_cast(a);出于某种原因,dynamic_cast操作会导致SEGFAULT。如果“a”不是NULL,那怎么会发生呢?我想如果有任何转换问题,dynamic_cast会给我一个NULL指针,而不是SEGFAULT。如果我试图访问“b”并且动态转换不成功,我应该只得到一个SEGFAULT,对吗?我什

c++ - 取消引用 NULL 指针是否保证使 C/C++ 中的程序崩溃?

我遇到了这个有线代码,它没有崩溃。#includestructs{char*c;char*c2;};intmain(){structs*p=NULL;printf("%d\n",&(p->c));printf("%d\n",&p->c2);printf("%d\n",&(*p).c2);return0;}输出:044我有几个问题无法回答:在c/c++中NULL指针总是等于0吗?如果0恰好是一个变量的地址会怎样?输出似乎是结构成员的偏移地址。这个是怎么算出来的。我的意思是p->c是c的地址,它不存在,因为p==NULL。如果c的地址不存在,怎么能通过&p->c得到c的地址呢?取消引用NU

c++ - 避免 std::bad_alloc。 new 应该返回一个 NULL 指针

我将一个中型应用程序从C移植到C++。它不会在任何地方处理异常,这一点不应该改变。我(错误!)对C++的理解是(直到我昨天艰难地学习它)(默认)new运算符在出现分配问题时返回NULL指针。然而,直到1993年(左右)才出现这种情况。现在,它抛出一个std::bad_alloc异常。是否可以在不重写所有内容以在每次调用时使用std::nothrow的情况下返回到旧行为? 最佳答案 你可以重载operatornew:#includevoid*operatornew(size_tpAmount)//throw(std::bad_allo

c++ - UB 递增 NULL 指针导致的错误示例

这段代码:int*p=nullptr;p++;导致未定义的行为,正如在Isincrementinganullpointerwell-defined?中讨论的那样但是在向其他人解释为什么他们应该避免使用UB时,除了说它不好因为UB意味着任何事情都可能发生之外,我还喜欢举一些例子来证明这一点。我有大量用于访问超出限制的数组的方法,但我找不到一个。我试过了inttestptr(int*p){intptr_tip;int*p2=p+1;ip=(intptr_t)p2;if(p==nullptr){ip*=2;}else{ip*=-2;}return(int)ip;}在一个单独的编译单元中希望优

pentaho错误-connectionserviceimpl.error_0009-连接到数据库[null]失败

我正在尝试与MySQLServer(Localhost)设置Pentaho连接。但是,这个错误“ConnectionServiceImpl.Error_0009-连接到数据库[null]失败”当我尝试测试连接时出现。有关服务器的信息应正确。信息图片:[我在MySQL中没有密码的密码],MySQL连接器文件已在PentahoServerLIB文件夹中插入。连接器文件夹图片:我已经寻找日志文件,并且发现了有关我的连接测试的信息:2017-07-0817:12:02,915ERROR[org.pentaho.platform.dataaccess.datasource.wizard.service.

c++ - int* 的默认值是 NULL 吗?

我写了如下源#includeusingnamespacestd;templateclassAAA{public:voidf(){couta;AAAb;a.f();///inthiscase,T()==NULL??b.f();return0;}控制台打印为000000000。(在visualstudio2010中)如果T是int*,T()==NULL?它总是正确的吗? 最佳答案 这称为值初始化,您保证0。另外,你不需要这么复杂的例子来演示:typedefint*T;intmain(){Tx=T();std::cout

c++ - 在 C++ 中, "return;"是否与 "return NULL;"相同?

我的问题是return;和C++中的returnNULL;一样吗?我理解在C++中,returnNULL;在指针上下文中与return0;相同。显然对于整数,情况并非如此,因为NULL不能被添加、减去等。并且一些人鼓励使用0而不是NULL作为指针,因为它更便于移植。我很好奇这是否是另一个发生等价的例子。我怀疑它们是等价的,因为return;是说return'nothing'而NULL是'nothing'。但是,如果有人可以证实或否认这一点(当然要有解释),我将不胜感激! 最佳答案 isreturn;thesameasreturnNU

c++ - strcpy... 想替换为 strcpy_mine,它将 strncpy 和 null 终止

线索在标题中,但基本上我继承了一些代码,其中有800多个strcpy实例。我想写一个新函数,然后用strcpy_mine替换strcpy。所以我正在尝试找出strcpy_mine的参数列表。我试过:voidstrcpy_mine(char*pTarget,constchar*constpCopyMe){constunsignedintlenAlwaysFour=sizeof(pCopyMe);//:(strncpy(pTarget,pCopyMe,lenAlwaysFour);//addextraterminatorincaseofoverrunpTarget[lenAlwaysFou

c++ - if(pointerVar) 和 if(pointerVar!=NULL) 一样吗?

简单问题:if(pointerVar)和if(pointerVar!=NULL)一样吗?此外,if(!pointerVar)是否与if(pointerVar==NULL)相同?请给我您在技术上最正确/迂腐的答案。这两个语句看起来和操作一样有意义。前者有什么问题吗(除了可读性稍差之外)? 最佳答案 对于最迂腐的答案,这里是规范的相关部分。首先,这里是如何if语句有效,来自§6.4.4:Thevalueofaconditionthatisaninitializeddeclarationinastatementotherthanaswit