
C++
文章平均质量分 86
进击的coder2021
一个默默成长的图像算法工程师
展开
-
数组和指针的操作
1.修改内容//正常代码char a[] = "hello";a[0] = 'X';//异常代码char *p = "world";p[0] = 'X'; //编译器不能发现该错误2.复制内容A: 判断 数组 和 指针 的内容是否相同;得用strcmp;char a[ ] = "hello";char b[10];strcpy(b,a); //不能用 b = a;if(strcmp(b,a) == 0) //不能用if(b ==a)B: 复制 数组 和 指针,得用strcp原创 2020-07-16 13:52:52 · 212 阅读 · 0 评论 -
野指针 与指针参数传递内存
一、杜绝“野指针”“野指针”不是NULL指针,只指向“垃圾”内存的指针。对于NULL指针,if语句容易判断,能避免错误;但野指针,if语句对它不起作用。“野指针”的成因主要有两种:(1)指针变量没有被初始化。解决办法:创建指针的同时对其初始化,要么将指针设置为NULL,要么让它指向合法的内存;char *p = NULL;char *str = (char *)malloc(100);(2)free或者delete释放内存后的指针没有赋值为NULLchar *p = (char*)ma原创 2020-07-16 14:52:52 · 303 阅读 · 0 评论 -
内存管理常见的6种问题
1.指针没有指向一块合法的地址,而指向的是乱码地址,对指针赋值时改变了其他地方的内容引起错乱。对策:(1)在定义指针时,同时初始化为NULL,用完指针后也将指针变量的值设置为NULL;(2)使用指针时,给指针指向的位置申请一块新内存,eg:psu=(struct student*)malloc(sizeof(struct student));这块内存要足够大sizeof(struct student*)就只有4个字节,不是结构体的大小。(3)函数的入口校验,debug版本中在函数...原创 2020-07-16 13:14:15 · 978 阅读 · 0 评论 -
多线程学习笔记
一、Createthread:创建线程后如何回收1.线程的生命周期就是线程函数从开始执行到return,这时候线程就自动回收了2.而线程句柄是一个内核对象。我们可以通过句柄来操作线程,句柄生命周期是从CreateThread返回到你CloseHandle(),closehandle后便释放句柄(如果不closehandle句柄资源很快用光)3.关闭一个句柄对象,表示不再使用该句柄操作线程(即不对线程做任何干预),但不会释放线程,线程释放按上述1其生命周期完成。...转载 2020-07-02 23:41:13 · 306 阅读 · 0 评论 -
VC++多线程全面讲解
使用 Spy++ 工具查看系统中当前的进程与线程!1、创建新线程的三种方式:方式一:CreateThread(记得关闭线程句柄)使用情况:无MFC时使用。方式二:AfxBeginThread(会自动释放的,不用你去释放)使用情况:MFC中有界面的程序中可以用;可以使用工作线程和界面现场。方式三:_beginthreadex(记得关闭线程句柄)与操作系统相关的系统中使用①、我们的程序到底是不是多线程运行的?有什么优点呢?加个 Sleep(1000*10) 便知分晓,即对于一些比较耗时的操作,原创 2020-07-30 19:07:44 · 3611 阅读 · 0 评论 -
详解:vs2008fatal error C1083: 无法打开包括文件:“windows.h”: No such file or directory
详解:vs2008fatal error C1083: 无法打开包括文件:“windows.h”: No such file or directory1问题描述编译时在afxv_w32.h文件中报告错误信息:vs2008fatal error C1083: 无法打开包括文件:“windows.h”: No such file or directory。2问题分析和解决方法这个问题是出现在V...原创 2019-11-02 00:51:36 · 9435 阅读 · 0 评论