1. malloc函数 函数原型:void *malloc(unsigned int size)函数的作用是:在内训的动态存储区开辟一个size个字节的连续空间,返回所分配区域的首字节地址。 可以看到,函数返回值是一个void指针,请注意,void指针不是一个可以指向任何类型数据的指针,而是 说,不 ...
分类:
编程语言 时间:
2018-11-12 20:24:24
阅读次数:
143
1.分配地方不同,malloc是堆上面,new是自由存储区域 2.malloc/delete是函数,new/delete是操作符,可以重载 3.malloc 要指定大小,返回的是void*指针,开辟的是空空间,失败返回NULL new有类型检测,编译器会自动计算大小,还会初始化空间,返回的是类指针, ...
分类:
编程语言 时间:
2018-10-19 23:40:18
阅读次数:
202
函数原型:void *malloc(unsigned int num_bytes); //分配长度为num_bytes字节的内存块 返回值是void指针,void* 表示未确定类型的指针,void *可以指向任何类型的数据,更明确的说是指申请内存空间时还不知道用户是用这段空间来存储什么类型的数据(比 ...
分类:
其他好文 时间:
2018-07-10 17:54:16
阅读次数:
166
用数据来实现顺序链表,将上层逻辑和底层链表的实现进行了分离,底层用void指针来满足所有类型的数据元素,上层需要传递对应的元素类型,并分配内存空间,底层不进行内存的管理工作。 优缺点和明显,查找循序,插入和删除需要移动所有的元素。 ...
分类:
其他好文 时间:
2018-06-10 15:28:43
阅读次数:
263
#include <stdio.h>
/*
2018-05-26
地址是内存单元的编号
指针就是地址,地址就是指针
地址就是内存单元的编号
指针变量是存放地址的变量
指针(0019FF38)和指针变量(p)是两个不同的概念
但是要注意:通常我们叙述时会把指针变量简述为指针,实际含义并不一样
*/
int main(void)
{
分类:
编程语言 时间:
2018-05-26 21:25:29
阅读次数:
162
C的NULL 在C语言中,我们使用NULL表示空指针,也就是我们可以写如下代码: 实际上在C语言中,NULL通常被定义为如下: 也就是说NULL实际上是一个void *的指针,然后吧void *指针赋值给int *和foo_t *的指针的时候,隐式转换成相应的类型。而如果换做一个C++编译器来编译的 ...
分类:
其他好文 时间:
2018-04-30 21:10:00
阅读次数:
214
``` #include #include #include using namespace std; //key is: pid,cpuseq struct st_syscall { int min; }; //key is: pid,cpuseq struct st_pagfalt { int ... ...
分类:
编程语言 时间:
2018-04-18 00:54:31
阅读次数:
343
【BZOJ3172】单词(AC自动机) 题面 Description 某人读论文,一篇论文是由许多单词组成。但他发现一个单词会在论文中出现很多次,现在想知道每个单词分别在论文中出现多少次。 Input 第一个一个整数N,表示有多少个单词,接下来N行每行一个单词。每个单词由小写字母组成,N inclu ...
分类:
其他好文 时间:
2018-01-09 16:50:59
阅读次数:
166
1、手工写了一个程序验证void *指针加减运算移动几个字节: 输出: 由上可知,当一个int指针被强转为void型指针后,加1,由以前移动4个字节变为了移动1个字节。 结论:void *指针加减1,移动1个字节,这个在一些计算地址的宏和函数里会用到。 例如:container_of宏: ...
分类:
其他好文 时间:
2017-10-19 09:21:55
阅读次数:
367
static关键字1.修饰局部变量,延长局部变量的生命周期。使变量成为静态局部变量,在编译时就为变量分配内存,直到程序退出才释放存储单元。2.修饰全局变量,限制全局变量的使用范围为本文件中。全局变量默认为静态全局变量,在编译时就为变量分配内存,直到程序退出才释放存储单元。3.修饰函数,限制函数的使用 ...
分类:
其他好文 时间:
2017-10-18 19:42:50
阅读次数:
137