c/c++
文章平均质量分 50
Tomes_V_White
我对技术一无所知
展开
-
GNU C++的符号改编机制
C++的符号改编机制转载 2022-07-26 15:43:00 · 775 阅读 · 1 评论 -
C++ 浅拷贝和深拷贝与坑
前言已从工作三年的公司离职,今天我久违的徒弟惨叫着发来一个bug……看到之后,我有些沉默。我怀疑不帮他,微信铃声可能会一直响个不停。这个问题有些基础,但也是c++新手容易犯的错误之一问题由于代码保密,这里简单的抽象出一个demo,简单说明下问题class Phone{public: Phone() { mBrand = new char(20); } ~Phone() { if (mBrand != NULL原创 2022-05-04 01:47:38 · 1290 阅读 · 0 评论 -
GCC安全编译选项
转载自:http://www.jackieathome.net/archives/796.html前言今天在学习编译器堆栈保护技术时,突然发现gcc的安全编译选项我还从来没去了解过发现一篇写的不错的帖子,进行转载保存以CMake为例,给出安全编译选项的定义关闭RPATH特性set(CMAKE_SKIP_RPATH TRUE)开启栈保护set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fstack-protector-strong")或者转载 2022-03-17 20:21:38 · 1762 阅读 · 0 评论 -
Android安全扫描提示未使用编译器堆栈保护技术的解决方法
前言目前市面上不少安全扫描apk并评估的公司会针对以下这项进行扫描防御原理和攻击原理,看最下面的参考,别人写的很好,我就没必要再累述了未使用编译器堆栈保护技术风险描述:为了检测栈中的溢出引入了Stack Canaries漏洞缓解技术。在所有函数调用发生时,向栈帧内压入一个额外的被称作canary的随机数,当栈中发生溢出时canary将被首先覆盖,之后才是EBP和返回地址。在函数返回之前,系统将执行一个额外的安全验证操作,将栈帧中原先存放的canary和.data中副本的值进行比较,如果两原创 2022-03-17 19:29:29 · 7740 阅读 · 0 评论 -
JNI内存泄露处理方法汇总
转载自:https://blog.csdn.net/wangpingfang/article/details/53945479#在c++中new的对象,如果不返回java,必须用release掉,否则内存泄露。包括NewStringUTF,NewObject。如果返回java不必release,java会自己回收。jstring jstr = env->NewStringUTF((*p).sess_id); ...env->DeleteLocalRef( jstr); jo转载 2021-04-29 11:46:48 · 1281 阅读 · 0 评论 -
解决Android studio CMake 3.10 or higher is required. You are running version 3.6.0-rc2 编译错误
问题:最近其他组在给项目添加新库,使用Android studio编译新工程,编译报错 Execution failed for task ':sdk:generateJsonModelRelease'.> Build command failed. Error while executing process /home/wangqiang/Environment/android_sdk/cmake/3.6.4111459/bin/cmake with arguments {原创 2021-04-13 21:06:50 · 4007 阅读 · 0 评论 -
c++ connect函数Address family not supported by protocol
问题:在c++中执行网络的connect函数,出现报错Address family not supported by protocol函数原型: int connect(SOCKET s, const struct sockaddr * name, int namelen);解决方法:结构体sockaddr:struct sockaddr { sa_family_t sa_family; char sa_data[14];};将结构体sockaddr的sa_family原创 2021-02-04 11:29:37 · 2457 阅读 · 0 评论 -
c++ ‘this‘ cannot be implicitly captured in this context
问题使用lambda表达式的时候,发现报了个编译错误'this' cannot be implicitly captured in this context完整示例void demo::init(){ Hanlder([](const std::string &event, const std::string &content){ //调用所在类的成员函数,报错 test(); });}void demo::test(原创 2020-12-16 11:39:30 · 4907 阅读 · 0 评论 -
uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型
转载自:http://blog.csdn.net/zklth/article/details/7978362uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型这些数据类型是 C99 中定义的,具体定义在:/usr/include/stdint.h ISO C99: 7.18 Integer types转载 2017-12-29 10:55:01 · 374 阅读 · 0 评论