采坑记录

简介: 栈内的变量是默认无初始值的把如图所示的数组放入main函数内,就会致错:原因是:  栈内的变量是默认无初始值的,用memset赋个初始值memset函数是在头文件#include 中定义的。

栈内的变量是默认无初始值的

把如图所示的数组

放入main函数内,就会致错:

原因是:

 

 栈内的变量是默认无初始值的,用memset赋个初始值

memset函数是在头文件#include <memory.h>中定义的。代码改成:

 

-----------------------------------------------------------------------------------------------------------------------------------------------------

 

数组作为参数,自动退化为指针

我胖虎又回来了,这次因为传参的时候,数组自动退化成指针了,又采坑了、上代码

#include <iostream>
using namespace std;

void calculate(int container[], int num) {
	if (container == nullptr) return;
	int len = sizeof(container) / sizeof(int);

	//动态申请一个和container一样大的数组
	//int *answer;
	//answer = (int *)malloc(sizeof(int)*len);

	int less = -1, more = len;
	for (int i = 0; i < len; i++) {
		if (container[i] < num) {
			less++;
			container[i]=container[less] + container[i];
			container[less] = container[i] - container[less];
			container[i] = container[i] - container[less];
		
		}
		else if (container[i] > num) {
			more--;
			container[i] = container[more] + container[i];
			container[more] = container[i] - container[more];
			container[i] = container[i] - container[more];
		}
	}
	int a = 0;
}

int main()
{
	int container[] = { 3,4,5,0,2 };
	int num = 3;
	int len = sizeof(container) / sizeof(int);
	calculate(container, num);
	return 0;
}

 

container函数中获得的len的值为1,而不是预期中的5.

-----------------------------------------------------------------------------------------------------------------------------------------------------

 

交换变量

机灵不能乱抖。最近新学了一种交换两个变量的值的方式,可以不用申请中间变量就交换两个变量的值,如下所示:

//交换a和b的值
a = a + b;
b = a - b;
a = a - b;

于是乎,老夫意气风发的,遇到交换变量的值就用这种方式。恩,bug也就随之而来了

if (arr[l] < arr[r]) {
			//交换arr[l]和arr[less]的值
			arr[l] = arr[l] + arr[less];
			arr[less] = arr[l] - arr[less];
			arr[l] = arr[l] - arr[less];
		}

肉眼看没什么问题,可是,如果 less 的值和 l 相等,最后arr[l]和arr[less]的值就都变成0了。。。

 

————————————————————————————————————————————————————————

 

布尔值不应该参与运算

bool b = true;
bool b2 = -b;  //b2是true

对大多数运算符来说,布尔类型的运算江北提升为int类型。上面布尔变量b的值为真,参与运算时将被提升成整数 1 ,对他求负的结果是 -1 。将 -1 在转换会布尔值并将其作为b2的初始值,显然这个厨师值不等于0 。转换成布尔值后应该为 1 。所以,b2 的值为真。

 

————————————————————————————————————————————————————————

解引用运算符的优先级低于点运算符

(*p).fun();

 

____________________________________________________________________________________________________

if语句里面的条件如果是负数,也会执行

 

 

———————————————————————————————————————————————————————

看到群里有意有意思的

bug在这:

是get_data()返回了一个vector数组,然后std::begin取到迭代器之后,这个verctor数组就析构了,*b就有问题了

 

哇,不知道是哪个公司,感觉这个版块挺有意思的,想投简历

 

相关文章
|
5月前
|
存储 数据采集 算法
《花100块做个摸鱼小网站! 》第三篇—热搜表结构设计和热搜数据存储
本文档详细介绍了如何搭建并实现一个简易的热搜数据抓取及存储系统。首先,通过基础链接导航引导读者了解项目的组成部分,包括服务器配置、示例网站和源码库。接着,逐步讲解了数据库表结构设计、利用MyBatis插件自动生成Java对象的过程,以及热搜数据的存储逻辑。在数据存储部分,特别关注了唯一ID生成算法,确保数据不会重复。此外,还提供了爬取抖音和百度热搜的具体实现代码,包括使用OkHttp进行网络请求、利用Jsoup解析HTML文档等技术细节。通过本文档的学习,读者不仅能掌握热搜数据抓取与存储的基本方法,还能了解到一些实用的开发技巧和工具。
68 1
《花100块做个摸鱼小网站! 》第三篇—热搜表结构设计和热搜数据存储
|
5月前
|
前端开发 JavaScript 容器
记录我的小厂一面,请准备好水 (一)
记录我的小厂一面,请准备好水 (一)
|
8月前
|
数据库
个人日记系统,记录点滴小事,记录生活点点滴滴
个人日记系统,记录点滴小事,记录生活点点滴滴
57 0
强烈推荐:可以记录一切有期限的事物
强烈推荐:可以记录一切有期限的事物
|
JSON 前端开发 JavaScript
2022-6月工作问题整理记录
2022-6月工作问题整理记录
2022-6月工作问题整理记录
|
存储 关系型数据库 MySQL
最详细的mysql索引解析(文末附赠思维导图)(二)
最详细的mysql索引解析(文末附赠思维导图)(二)
145 0
最详细的mysql索引解析(文末附赠思维导图)(二)
|
存储 关系型数据库 MySQL
最详细的mysql索引解析(文末附赠思维导图)(一)
最详细的mysql索引解析(文末附赠思维导图)(一)
134 0
最详细的mysql索引解析(文末附赠思维导图)(一)
|
SQL 程序员
看了 100多份 “不合适” 的简历后,忍不住想吐槽这几点
看了 100多份 “不合适” 的简历后,忍不住想吐槽这几点
164 0
看了 100多份 “不合适” 的简历后,忍不住想吐槽这几点
|
数据可视化 前端开发 NoSQL
BUG记录 | 【内附前端福利】
今天在安装VMWare软件的时候,突然报了这个错误
152 0
BUG记录 | 【内附前端福利】
|
JavaScript
大杂烩: 踩坑记录
大杂烩: 踩坑记录
大杂烩: 踩坑记录

热门文章

最新文章