摘要:
栈空间会随着函数执行完而释放,空间里的值可能会被覆盖 #include <iostream> void* Fun(int* a,int* b) { int c = *a + *b; return (void*) & c; } void overwriteStack() { int dummy[100
阅读全文
posted @ 2025-02-27 20:24
丁同亚的博客
阅读(10)
推荐(0)
摘要:
为什么分节 节省硬盘空间 任何一个exe都有自己独立的4gb空间,应用程序使用的都是虚拟内存 3.有些节可以复用
阅读全文
posted @ 2025-02-27 11:38
丁同亚的博客
阅读(14)
推荐(0)
摘要:
1.指定某个位的值 // bit.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include <iostream> /** num: 源操作数 n: 表示要修改操作的数第几位 flag: 修改成1还是0 */ unsigned int setbit(unsign
阅读全文
posted @ 2025-02-26 16:31
丁同亚的博客
阅读(8)
推荐(0)
摘要:
指针类型加减运算的步长和它修饰的类型的宽度一致 函数指针 定义:int (*pfun)(int,int); //或者 typedef int (*pFun)(int,int); pFun pfun;
阅读全文
posted @ 2025-02-25 13:41
丁同亚的博客
阅读(8)
推荐(0)
摘要:
switch 反汇编后的几种情况 1.同 if else,每个分支都会比较 2.生成跳转表,计算出地址 3.生成两张表,通过计算跳转 4.二分查找
阅读全文
posted @ 2025-02-24 11:05
丁同亚的博客
阅读(16)
推荐(0)
摘要:
参数和局部变量没有本质区别,都是栈中的数据 参数时在函数调用前分配的值,局部变量是在函数调用时分配的值 参数 ebp+* 局部变量 ebp-* 赋值的本质是把运算结果放到某个内存里 数组: 一堆连续存储的等宽数据 结构体:结构体得定义不会在编译后的程序中
阅读全文
posted @ 2025-02-22 19:17
丁同亚的博客
阅读(11)
推荐(0)
摘要:
crypto-js不支持 AES_GCM 加密 ,听说可以用 crypto 支持?当时是自己写的.... crypto API 要求页面在安全上下文(Secure Context)中运行。localhost 和 127.0.0.1 被视为安全上下文,但通过普通 IP 地址(如 192.168.x.x
阅读全文
posted @ 2025-02-05 09:20
丁同亚的博客
阅读(132)
推荐(0)
摘要:
简单点说 计算机加法器容易实现 1.通过异或运算算出每一位进位之后留下的的值 2.与运算和左移运算算出进位值 3.让前两步的结果相加 (即是循环上两步直到不产生进位) 一个只有4位的寄存器 从0000 到1111 再加1 又会回到0000 这就形成了一个环.类比钟表.如果我们用 0000-0111表
阅读全文
posted @ 2025-01-13 20:59
丁同亚的博客
阅读(24)
推荐(0)
摘要:
整数加减乘除 加法通过异或和与和位移运算 没有减法,减法就是加法,只不过负数的表示方式 小数加减乘除 浮点数的表示是科学计数法表示的 加减乘除类似于十进制科学计数法的加减乘除
阅读全文
posted @ 2025-01-12 17:19
丁同亚的博客
阅读(6)
推荐(0)
摘要:
链表反转 二叉树递归遍历 二叉树循环遍历得到递归序 二叉树宽度优先遍历 判断是否是搜索二叉树,完全二叉树,满二叉树,平衡二叉树 (树形DP套路) 图 图的表示方法比较多,选择一个常用的实现所有算法 图的广度优先遍历 图的深度优先遍历 拓扑排序 最小生成树
阅读全文
posted @ 2025-01-12 17:18
丁同亚的博客
阅读(8)
推荐(0)