![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 50
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 · 991 阅读 · 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 · 78 阅读 · 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 · 1442 阅读 · 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 · 3187 阅读 · 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 · 785 阅读 · 0 评论 -
生成日志logger
目录一、主要解决两个问题点:二、解决获取utc time2.1 精确时间到ms级别,用:gettimeofday(&tv, NULL);2.2输出格式 ,localtime(&t)的时间是1970-00-01开始的,所以要有个转换。2.3 返回值问题,一开始自己是char* fun(),返回值不能打印,因为szTime[] 内存出了函数就没有了。所以就用了入参的形式。三、按照想要的顺序格式输出log3.1有个可变参数的问题概念。3.2那么列表表示什么呢?.原创 2021-09-01 16:02:01 · 184 阅读 · 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 · 812 阅读 · 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 · 4862 阅读 · 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 · 387 阅读 · 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 · 443 阅读 · 0 评论 -
g++编译
更普遍的做法是通过 -o 选项指定可执行程序的文件名。下面的命令将产生名为 helloworld 的可执行文件: $ g++ helloworld.cpp -o helloworld 在命令行中输入程序名可使之运行: 12 $ ./helloworldhello, world https://www.cnblogs.com/cocox/p/388...原创 2021-03-10 13:29:17 · 72 阅读 · 0 评论 -
[C/C++]C语言中字符串常量存储在哪里
[C/C++]C语言中字符串常量存储在哪里char str1[] = "abcd";char str2[] = "abcd";const char str3[] = "abcd";const char str4[] = "abcd";const char *str5 = "abcd";const char *str6 = "abcd";char *str7 = "abcd";char *str8 = "abcd";cout << ( str1 == str2 )原创 2021-02-24 17:30:33 · 839 阅读 · 0 评论 -
对于容器的去重复操作swap,sort,erase
std::vector中swap()函数使用解析以及去重复操作现象:首先,vector与deque不同,其内存占用空间只会增长,不会减小。比如你首先分配了10,000个字节,然后erase掉后面9,999个,则虽然有效元素只有一个,但是内存占用仍为10,000个。所有空间在vector析构时回收。 在用vector时,输入完一组数据处理完后,调用clear()进行清理,如果此时打印vector[0],会发现仍然输出之前vector所存的内容,但是如果调用.empty()函数又会返回1,告诉我们这原创 2021-02-04 17:33:36 · 166 阅读 · 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 · 286 阅读 · 0 评论 -
注释
除了//之外;和/**/还有:方法一:#if 0 code#endif 方法二:#if condition code1#else code2#endif原创 2020-08-11 14:54:07 · 74 阅读 · 0 评论 -
char; char*; char [];详细讲解
https://blog.csdn.net/qq_28351609/article/details/84633393原创 2020-08-06 07:26:06 · 155 阅读 · 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 · 209 阅读 · 0 评论 -
LeePlayer
1、黑屏:报错:[Application] The app delegate must implement the window property if it wants to use a main storyboard file.@synthesize window = _window;2、原创 2020-07-20 13:52:56 · 80 阅读 · 0 评论 -
线程和进程
记录一下:https://mp.weixin.qq.com/s/wn8w14Bkf99zbxcGQr30Zg原创 2020-07-14 10:37:04 · 84 阅读 · 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 · 157 阅读 · 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 · 1026 阅读 · 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 · 4351 阅读 · 0 评论 -
深拷贝;附strcpy和memcpy区别
深拷贝strcpy() char m_sSubtitleLang[128];const char* destLanguage = [sLanguage UTF8String]; strcpy(m_sSubtitleLang, destLanguage);原创 2020-05-13 00:33:05 · 1457 阅读 · 0 评论 -
c++ 对指针地址的内容进行复制
1、对指针地址的内容进行复制,地址不变,里面内容发生变化;sTempLanguage = &subtitleLang_; 将subtitleLang_地址给sTempLanguage,*sTempLanguage = [],因为*sTempLanguage是指针,指的是subtitleLang_这个地址内容,所以,为直接给subtitleLang_赋值。NSString * __strong *sTempLanguage = NULL;sTempLanguag...原创 2020-05-13 00:23:26 · 3322 阅读 · 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 · 59936 阅读 · 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 · 327 阅读 · 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 · 269 阅读 · 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 · 166 阅读 · 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 · 2104 阅读 · 0 评论 -
问题1:判断字符串中是否有非数字或小数点
string = "1234.5678.90123.abcd.1234"Q1: 判断是否有非数字或小数点Q2:去掉非数字Q3: 输出非数字试试正则原创 2020-02-23 00:04:41 · 843 阅读 · 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 · 597 阅读 · 0 评论