
知识点
文章平均质量分 51
两片空白
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
如何避免僵尸进程
当进程创建子进程,子进程比父进程先退出。当时父进程没有回收子进程的资源,子进程会变成僵尸进程,进程状态变成Z。由于子进程的资源没有释放,导致内存泄漏。原创 2023-09-16 14:11:52 · 316 阅读 · 0 评论 -
栈帧详情转载
栈帧详解 我们知道,栈帧又称 过程活动记录,主要用于记录函数调用过程中的一些 局部变量和中间数据。 下面,我们用一个简单的程序的汇编过程来分析程序在内存中的存储情况。 主函数的汇编过程: 首先,我们都知道每一个栈帧都有其自己的栈底指针ebp和栈顶指针esp。每一个函数的每一次运行都需要在栈区中开辟出一个栈帧,可是一个CPU中的栈帧不可能无限的增加,所以,当有新的栈帧出现时...转载 2021-05-26 16:57:06 · 403 阅读 · 0 评论 -
C/C++ 内存分配
C/C++程序内存分配的几个区域 1.代码区 主要存放函数体的二进制代码 2.字符常量区(只读) 字符串存储区间 相同的字符串存储地址相同。 #include<stdio.h> int main(){ char *p1 = "abc"; char *p2= "abc";//用*p2='H',不可以被修改,p2存放的hellow world的地址,*p2相当于h,字符常量不可被修改 printf("%p\n", p1); printf("%p\n", p2); return .原创 2021-05-25 14:37:05 · 1514 阅读 · 13 评论 -
递归问题(斐波那契,青蛙跳台,汉诺塔)
文章目录一.递归介绍1.什么是递归2.递归的两个必要条件3.递归优缺点二.斐波那契数三.青蛙跳台四.汉诺塔 一.递归介绍 1.什么是递归 程序调用自身的编程技巧称为递归。递归作为一种算法在程序设计语言中广泛应用。递归通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。 递归主要的思考方式在于:把大事化小。 2.递归的两个必要条件 递归把大事化小同样满足原来的条件,才能实现自己调用自己。 存在限制条件,每次递归调用之后越来越接近这个限制条件,当满足限制条件的时候,递归不再继续。原创 2021-05-23 16:30:33 · 319 阅读 · 2 评论 -
结构体在内存中的存储(内存对齐)
文章目录一.内存对齐是什么二.怎样内存对齐 一.内存对齐是什么 首先看例子: #include<stdio.h> struct stu{ char a; int b; char c; }; int main(){ printf("%d\n", sizeof(struct stu )); return 0; } 输出: 按照正常的思维,上述结构体中,两个char类型占一字节,一个int类型占四字节,一共应该是6字节,那为什么输出是12字节呢。 再看一个代码。 #include<原创 2021-05-21 15:07:35 · 1263 阅读 · 0 评论 -
求最大公约数之辗转相除法
文章目录一.前言二.辗转相除法原理三.用C语言求最大公约数 一.前言 最大公约数为两个及其以上的整数中约数最大的一个。 也称为最大公因子,最大公因数。a,b的最大公约数记为(a,b),同样的,a,b,c的最大公约数记为(a,b,c),多个整数的最大公约数也有同样的记号。求最大公约数有多种方法,常见的有质因数分解法、短除法、辗转相除法、更相减损法。与最大公约数相对应的概念是最小公倍数,a,b的最小公倍数记为[a,b]。 如果a能被b整除,那么a是b的倍数,b是a的约数。 二.辗转相除法原理 相信大家对辗转原创 2021-05-21 09:04:10 · 6153 阅读 · 6 评论 -
前缀和
bool carPooling(int** trips, int tripsSize, int* tripsColSize, int capacity){ int num[1001]={0};//建立一个时间数组 int i=0; int result=0; for(;i<tripsSize;i++){ num[trips[i][1]]+=trips[i][0];//上车时间点的上车人数 num[trips[i][2]]-=t...原创 2021-05-15 16:11:59 · 120 阅读 · 0 评论 -
注意点1
数组只有单独使用在&和sizeof时才代表整个数组。 #include<stdio.h> int main(){ int a[3] = { 1, 2, 3 }; printf("%p\n", a);//首元素的地址 printf("%p\n", &a);//数组最低的地址 printf("%p\n", a + 1);//输出多4bit只跨越了一个元素 printf("%p\n", &a + 1);//输出多12字节,跨越整个数组 return 0; }原创 2021-05-15 12:38:41 · 117 阅读 · 0 评论