基本知识点
文章平均质量分 54
leek5533
这个作者很懒,什么都没留下…
展开
-
memcopy和memmove函数;修复AddressSanitizer:与memmove的strcpy-param-overlap吗?
遇到一个问题,如下:ERROR: AddressSanitizer: strcpy-param-overlap: memory ranges [0x0001102f767c,0x0001102f7687) and [0x0001102f767c, 0x0001102f7687) overlap #0 0x1042d15f4 in wrap_strcpy+0xb8 (/private/var/containers/Bundle/Application/65AC0456-70F4-43F1-B98原创 2021-11-05 18:45:26 · 1092 阅读 · 0 评论 -
三目运算?:
int main(){ float a = 1.0; float b = 0.0; float c = a+ (b==0)?1:5; std::cout << ":%f " << c << "!\n"; return 0;}输出不对:输出1.0修改:#include <iostream>using namespace std;int main(){ float a = 1.0; float b = 0;.原创 2021-10-29 18:41:02 · 82 阅读 · 0 评论 -
sizeof()
前段时间和同事讨论这个sizeof(),今天跑了一下记录下来;#include <stdio.h>#include <string.h>int main(int argc, char *argv[]){ char str1[] = "Hello"; str1[2] = 'a'; printf("%s\n", str1); char str2[100]="Hello"; char * p1 = "Hello"; const原创 2021-09-24 16:50:10 · 1473 阅读 · 0 评论 -
printf打印的输出类型
%d 十进制有符号整数%u 十进制无符号整数%f 浮点数%s 字符串%c 单个字符%p 指针的值%e 指数形式的浮点数%x, %X 无符号以十六进制表示的整数%o 无符号以八进制表示的整数%g 把输出的值按照 %e 或者 %f 类型中输出长度较小的方式输出%p 输出地址符%lu 32位无符号整数%llu 64位无符号整数#include <stdio.h>int main(){ char ch = 'A'; char str[20] = "www原创 2021-09-17 13:07:40 · 3434 阅读 · 0 评论 -
realloc扩展空间的用法
1、和malloc()作用一样(前提是第一次申请空间,传入的是null),api上说扩展后的指针地址前后一样,说也可能会发生改变,但是没有细说为什么会改变,什么时候会改变。(不过也和编译器有关)官方:http://www.cplusplus.com/reference/cstdlib/realloc/?kw=realloc菜鸟:https://www.runoob.com/cprogramming/c-function-realloc.html先看一个菜鸟上的例子: .原创 2021-09-08 14:05:59 · 523 阅读 · 0 评论 -
初始化 长度不固定 的数组
经常碰到需要初始化长度不固定的数组;注意最后要销毁指针#include "stdafx.h"#include <iostream>using namespace std; int main(){ //数组个数。 int NumOfarray; cout<<"please input number of array!!"<<endl; cin>>NumOfarray; //使用new操作符 动态.原创 2021-09-07 13:36:56 · 807 阅读 · 0 评论 -
vim命令
一、为什么用vim经常碰到Terminal用vim输入,搞不定命令;所以专门用一个小时大概看下,记录一下;二、常见命令基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。命令相互切换:ESC最常用的是输入,保存 退出:2.1、底线命令模式在命令模式下按下:(英文冒号)就进入了底线命令模式。底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。在底线命令原创 2021-08-04 13:20:00 · 188 阅读 · 0 评论 -
enum和 typedef enum
1、首先知道typedef的用法:定义一个别名;不仅仅是定义enum,其他类型都可以,比如typedef unsigned char BYTE;以后就可以BYTE a; === 等价于 unsigned char a;2、同样道理 typedef enum比如 :typedef enum ABC{//ABC可以省略A=1,b,c,}enumName;以后用使用的话把enum{A=1,b,c,}看成一个整体使用用的时候...原创 2021-06-08 10:48:12 · 858 阅读 · 0 评论 -
c++的unsigned int和int类型
wvoid foo(void){unsigned int a = 6;int b = -20;(a+b > 6) ? puts("> 6") : puts(" <= 6");}无符号整型问题的答案是输出是">6"。原因是当表达式中存在有符号类型和无符号类型时所有的操作数都自动转换为无符号类型。因此-20变成了一个非常大的正整数,所以该表达式计算出的结果大于6。————————————————版权声明:本文为CSDN博主「木木总裁」的原创文章,遵循CC 4.0 B原创 2021-07-14 14:22:42 · 5016 阅读 · 0 评论 -
clock_gettime
函数"clock_gettime"是基于Linux C语言的时间函数,他可以用于计算精度和纳秒。#include<time.h>int clock_gettime(clockid_t clk_id,struct timespec *tp);使用:struct timespec ts;clock_gettime(CLOCK_MONOTONIC, &ts);clk_id : 检索和设置的clk_id指定的时钟时间。CLOCK_REALTI...原创 2021-05-12 17:57:36 · 412 阅读 · 0 评论 -
C++中的friend class 用法总结
https://blog.csdn.net/weixin_38293850/article/details/80191242对于一个没有定义public访问权限的类,能够让其他的类操作它的私有成员往往是有用的。例如你写了一段binary tree的代码,Node是节点类,如果能够让连接多个节点的函数不需要调用public方法就能够访问到Node的私有成员的话,一定是很方便的。Friend Classes(友元类)C++中的friend关键字其实做这样的事情:在一个类中指明其他的类(或者)函数能够原创 2021-04-12 13:46:16 · 465 阅读 · 0 评论 -
c++ 多线程
1.调用windows API实现多线程h1=CreateThread(NULL,0,myfun1,NULL,0,NULL);//创建线程12、Linuxint ret = pthread_create( &tids[i], NULL, say_hello, NULL );//参数:创建的线程id,线程参数,线程运行函数的起始地址,运行函数的参数3、c++11thread th1(t1);https://chorior.github.io/2017/04/24/C++-t原创 2020-09-02 14:37:58 · 311 阅读 · 0 评论 -
注释
除了//之外;和/**/还有:方法一:#if 0 code#endif 方法二:#if condition code1#else code2#endif原创 2020-08-11 14:54:07 · 81 阅读 · 0 评论 -
实现字符串映射 用NSMutableDictionary (key value)
添加、删除,修改值NSMutableDictionary *propertyDict; NSMutableDictionary *dict = [NSMutableDictionary dictionary];[dict setObject:value forKey:key];//add [propertyDict removeObjectForKey:key] //remove[propertyDict setValue:value forKey:key] //setvalue原创 2020-05-15 15:08:49 · 231 阅读 · 0 评论 -
map映射关系
BOOL CPhoneBackupDetect::SetDevicesMap(map<string,int> &mapDevice){ mapDevice.insert(make_pair<string,int>("HUAWEI",0)); mapDevice.insert(make_pair<string,int>("GLONEE",1)); mapDevice.insert(make_pair<string,int>("MEIZU",.原创 2020-08-03 14:38:41 · 225 阅读 · 0 评论 -
ios的几个延时方法
1、最简单的,该方法阻塞的是当前线程sleep(5);2、用NSTread,此方法是一种阻塞执行方式,建议放在子线程中执行,否则会卡住界面[NSThread sleepForTimeInterval:5];3、GCD,此方法可以在参数中选择执行的线程,是一种非阻塞执行方式__block ViewController/*主控制器*/ *weakSelf = self;dispatch_time_t delayTime = dispatch_time(DISPATCH_TI..原创 2020-07-29 16:50:34 · 755 阅读 · 0 评论 -
macos配置FFmpeg
1、进入FFmpeg源代码目录,运行配置命令https://www.jianshu.com/p/85f905ddb36f2、配置环境变量https://www.jianshu.com/p/ab469a2ffd28原创 2020-07-28 22:58:09 · 184 阅读 · 0 评论 -
ios设备home键 锁屏键区分
两个方法:1、查看屏幕的亮度CGFloat screenBrightness = [[UIScreen mainScreen] brightness]; if (screenBrightness > 0) { // todo }2、监听com.apple.springboard.lockcompletCFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(),原创 2020-07-28 16:00:49 · 266 阅读 · 0 评论 -
postNotificationName 消息传递
对象之间进行通信最基本的方式就是消息传递,在Cocoa中提供Notification Center机制来完成这一任务。其主要作用就是负责在任意两个对象之间进行通信。使用方法很简单,如下几个步骤即可:假设A与B之间进行通信,B来触发事件,A接受该事件,并作出响应。1) A编写自定义的消息响应函数update2) A向消息中心注册,[NSNotificationCenter defaultCenter] addObserver: self selector:@selector(update) name:原创 2020-07-21 10:54:21 · 1529 阅读 · 0 评论 -
ios启动没有APP的生命周期
1、xcode11 以后AppDelegate.m文件没有了APP的生命周期;在ios13以后用SceneDelegate.m文件AppDelegate.m可以自己加上,如下:#pragma mark - 生命周期- (void)applicationWillEnterForeground:(UIApplication *)application{ NSLog(@"状态** 将要进入前台");}- (void)applicationDidBecomeActive:(UIAp.原创 2020-07-20 17:08:52 · 358 阅读 · 0 评论 -
线程和进程
记录一下:https://mp.weixin.qq.com/s/wn8w14Bkf99zbxcGQr30Zg原创 2020-07-14 10:37:04 · 89 阅读 · 0 评论 -
关于内存new、malloc;delete、free
1、new 和 malloc 内部的实现方式有什么区别?#include <iostream>#include <malloc.h>class TEST{private: int num1; int num2;public: TEST() { num1 = 10; num2 = 20; } void Print() { std::cout <&l...原创 2020-07-14 06:53:00 · 169 阅读 · 0 评论 -
strcpy()带来的溢出错误
// (*(std::string*) pValue).assign(sVlaue);*(std::string*) pValue = sVlaue;1、strcpy(d,s); 是将char* s的内容复制到char* d里面;如果出现s长度大于d的长度就会出现溢出;显示不全;方法1:将char* d s转换成为string类型,因为string类型是空间是可以改变的。方法2:方法3:不建议销毁,重新开辟空间:malloc();...原创 2020-07-10 09:29:42 · 1050 阅读 · 0 评论 -
iOS中获取NSError错误信息问题汇总
iOS的NSError错误信息问题汇总一. URL网络框架错误域问题使用AFNetworking 走了fail方法,输出错误信息1. 网络请求中, 错误值作为域NSURLErrorDomain的NSError对象的错误代码属性返回2020-07-08 09:55:10.645450+0800 Player[12591:1607802] Connection 3: received failure notification2020-07-08 09:55:10.6...原创 2020-07-09 09:42:49 · 3296 阅读 · 0 评论 -
smartgit 上传code到github
1、一个比较好用的软件:smartgit,可以自己去下载,https://www.syntevo.com/smartgit/download/类似smartSVN,2、使用方法:https://baijiahao.baidu.com/s?id=1601037714736535268&wfr=spider&for=pc原创 2020-05-15 00:36:28 · 272 阅读 · 0 评论 -
子类继承父类的成员变量;
1、子类可以继承父类的成员变量;(只能继承public 和protected,不能private)2、子类拿到的父类的成员变量值是初始化的值。3、如下面classB继承classA,只能拿到初始化的a的值。//int classA::a = 0;int main(){ printf("Lee study"); //std::cout << "testv" << std::endl; classA *a = new classA(); c...原创 2020-05-14 19:27:26 · 4413 阅读 · 0 评论 -
c++ 字符串相等比较
比较两个char*字符串 或 string对象是否相等 c\c++1. 如果要比较的对象是char*字符串利用:int strcmp(const char* s1,const char* s2);(1) 当s1 < s2时,返回负数;(2) 当s1 == s2时,返回值 = 0;(3) 当s1 > s2时,返回正数。所在头文件:string.h即:两个字符串...原创 2020-05-06 14:29:04 · 61190 阅读 · 1 评论 -
Objc和 c++之间字符串的转换
一、oc和c++的混编;constchar* toNSStringobject c1 --------> c++ ----------> object c2;1.object c1object c1NSString *s =@"ABC";const char* destDir = [s UTF8String];2、C++两种转换方法:...原创 2020-04-13 17:23:23 · 341 阅读 · 0 评论 -
closed caption
closed caption原创 2020-04-10 16:46:37 · 421 阅读 · 0 评论 -
前置声明及可能出现问题
A.hclass A{public: B* m_;}这样会编译出错,因为B没有定义#include "B.h"#include "B.h"class A{public: B* m_;}但是这样,一旦B的定义修改,那么A.h也就会重新编译,导致所有用到A.h的文件也需要重新编译,这样就造成了编译依赖,增加了编译的时间,在大型项目中,如果很多这样的地方的...原创 2020-03-25 15:48:20 · 288 阅读 · 0 评论 -
关于结构体指针的问题
关于结构体指针的问题例如:Student{nameNum}使用一:Student* std_astd_a->name 不在一个函数内会出错,会为空,指针指向的地址内容会销毁,使用二:Student std_bstd_a.name 不在一个函数内也会有值,因为已保存了值。https://blog.csdn.net/weixin_36209467/a...原创 2020-03-06 19:42:38 · 180 阅读 · 0 评论 -
c++中map使用,保存多个键值对
//定义: map<string,string> mAnalyticeInfoMap;//使用 map<string,string>::iterator infoMap_iter = mAnalyticeInfoMap.begin(); for(;infoMap_iter != mAnalyticeInfoMap.end(); infoMap...原创 2020-03-06 19:33:14 · 2147 阅读 · 0 评论 -
问题1:判断字符串中是否有非数字或小数点
string = "1234.5678.90123.abcd.1234"Q1: 判断是否有非数字或小数点Q2:去掉非数字Q3: 输出非数字试试正则原创 2020-02-23 00:04:41 · 885 阅读 · 0 评论 -
滴水成渊、粒米成箩---“>>”自动读取字符串流内容的符号
1、“>>”自动读取字符串流内容的符号std::istringstream ss1;#import <sstream>std::istringstream ss1; ss1.str(value); double num = 0; ss1 >> num;参照:https://blog.csdn....原创 2020-02-22 21:18:08 · 607 阅读 · 0 评论