什么是结构体内存对齐?为什么要对齐?怎样对齐? 结构体内存对齐:元素是按照定义顺序一个一个放到内存中去的,但并不是紧密排列的。 从结构体存储的首地址开始,每个元素放置到内存中时,它都会认为内存是按照自己的大小来划分的,因此元素放置的位置一定会在自己宽度的整数倍上开始。 struct T{ int a ...
分类:
其他好文 时间:
2020-01-10 15:29:47
阅读次数:
98
程序基本思路: 1.首先判断若字符串的长度为0或1,如果是,则这个字符串是回文序列,程序直接结束 2.若字符串长度大于1,先将字符串转化成字符数组,定义旗帜flag、字符数组头和尾标识,将字符数组首地址和以上定义传给递归方法 3.用头尾标记数组头尾字符来进行一一比较,如果一致,继续递归调用自身,直至 ...
分类:
其他好文 时间:
2020-01-05 14:05:53
阅读次数:
120
最近复习数据结构实验时,碰到这么一行代码,看的有点不爽。 借此梳理下数组和指针。 在32位平台下,由于p存的是地址,故p的值是32位。 不论p指向什么类型的数据,指针变量p本身都是整型。 c中没有 类型,所以一般用字符数组表示字符串。 c规定数组名表示数组在内存中的首地址,就是 ,我们一般输出字符串 ...
分类:
编程语言 时间:
2020-01-01 23:30:38
阅读次数:
94
假设有这么一个数组:int a[3][4] = {{1,3,5,7},{9,11,13,15},{17,19,21,23}} 表示形式 含义 地址 a 二维数组名,指向一维数组a[0],即0行的首地址 假设首地址为2000 a[0], *(a+0) *a 0行0列元素地址 2000 a+1,&a[1 ...
分类:
编程语言 时间:
2019-12-30 17:29:10
阅读次数:
94
c++内置二分查找 #include < algorithm > 一、binary_search:查找某个元素是否出现。函数模板:binary_search(arr[], arr[]+size, indx)1参数说明:arr[]: 数组首地址size:数组元素个数indx:需要查找的值函数功能: 在 ...
分类:
编程语言 时间:
2019-12-17 20:14:18
阅读次数:
92
题目 核心代码 流程图 解题思路与遇到的困难 解题思路主要是找到母串中与子串首字符相同的位置一直判断到子串结束,整体思路并不难,但需要 对细节严格把控。我自己就遇到了例如没有使用j而直接使用i,导致最后返回的不是首地址;if语句中k与tlen的 关系很难判断,但最后拿草稿纸与编译器多试了几次就懂了; ...
分类:
其他好文 时间:
2019-12-16 13:19:29
阅读次数:
84
原型如下: ptr是要写入的内存块的指针,value是要写入的值,num是从ptr指向的首地址开始一共要写入的字节数。 要注意num传入的参数 错误示范: 实际上sizeof(InDegree)是4,等于sizeof(int)。也就是说这里的num参数只是一个指针的大小,没有完成初始化工作,除了第一 ...
分类:
其他好文 时间:
2019-12-11 09:42:42
阅读次数:
76
String类对象的拼接操作:执行到s+="world"语句时,常量池会先创建"world"对象,再去创建"helloworld"对象,最后将"helloworld"对象的首地址赋给栈内存的s变量 StringBuilder构造方法: StringBuilder添加和反转方法: 1 import j ...
分类:
编程语言 时间:
2019-12-01 16:31:44
阅读次数:
89
==和equals方法究竟有什么区别? 1). equals方法比较两个对象的内容 2). ==比较两个对象是否是同一对象,或者说对象在内存中的首地址是否相同 应用:(1) 对于基本数据类型,“==”比较的是两者的值是否相等 (2) 对于引用数据类型,==”比较的是引用的地址是否相同,对象默认的eq ...
分类:
编程语言 时间:
2019-11-28 13:06:01
阅读次数:
93
打开程序看,菜单已经说明的很清楚了 1存在栈溢出,2存在format 不过checksec了发现 存在栈保护,这里的format就可以泄露出标志位 经过尝试,%x只能输出8bit的数 这里使用%p 先试试水 第6个参数就是我们的输入首地址了 然后往下找标志位 计算出是第23个参数 验证一下 是第23 ...
分类:
其他好文 时间:
2019-11-18 20:35:30
阅读次数:
185