08/09

作者: 常人 | 来源:发表于2018-08-09 18:09 被阅读0次

总结

动态存储分配

1、用到的函数:

a、malloc 函数 :

    1   分配内存快,内存快不初始化

    2   函数的结构为 void*malloc(size_t ,size);

    3  p = (char *)malloc(n + 1);  给具有n个字符的字符串分配空间;p指向未初始化的字符数组(加上空字符为n+1字符)

    4    strcpy(p, "abc");给p指针初始化的一个函数;

    5  strcat(a,b);函数对字符串进行拼接;

b、calloc

c、realloc

d、free 

使用该函数 释放a,b,c 函数使用是分配占用的空间;否则程序会将内存用光;

2、动态分配字符串

二、动态分配数组

1、int *a  数组a  数组的长会在程序执行时候计算出来,

形式为:a = malloc(n*sizeof(int));

2、calloc ()

函数不但会分配内存块空间, 会通过将所有值设置为0进行初始化;

函数会自己清除分配的内存;

3、realloc()   调整数组的大小

函数是在 calloc  malloc 基础上是使用

格式:void*realloc(void*ptr,size_t size);

“悬空指针”

释放了p所指的内存 但是没有将P 指向另外的有效内存;

三、链表

链表是有  一串 结构(结点)  组成  每个结点都  有指向下一结点的指针;(不能随机访问)

1、声明结点:

struct node{

int value ;      //意思  准备存多少个数?

struct node *next}    ;(next 是(struct node* 类型)  //为什么一定要用到node标记? 写在大括号之前和之后的区别在哪?

struct node*first = NULL;  把first 初始化为NULL  链表       第一个结点     初始化为空;

2、创建结点

步骤:两步

分配储存,数据存入结点,插入链表;

临时变量 new_node

                      :struct node*new_node;

使用函数分配大小:new_node = malloc(sizeof(struct_ node))   //sizeof  单个机构体占的内存字节大小


(*new_node).value = 10 寻址访问

-> 右箭头选择符  是 * 和.的组合

3、在链表开始处插入结点

需要两条语句:

修改结点成员next  使其指向首点:next_node->next  = firs t;//  ?  next_node????

其次:first指向新的结点:

first = new_node;

空链表也可以插入 结点

4、搜索链表

for循环首选:

结构:for( p = first ; p = NULL; p = p ->next)

p = p -next     p = (*p).next;

5、链表 删除结点

三步:定位,   改变前一结点“绕过”删除结点,     free 函数释放空间

方法:追踪指针方法  :指向结点前的一个指针(prev)  ;  当前结点指针 (cur)  ;

第一步:查找条件:    (list 中删除 n;)

结构: for(  cur  = list ,prev = NULL;

cur  != NULL&& cur-> != n ;

prev = cur ,cur = cur->next);

第二步:删除

prev -> next = cur -> next ;

第三步:释放

free(cur);

6、有序链表

有序链表的查找速快 ,结点插入难度增加;

四、 指向指针的指针

相关文章

  • 2018-03-29

    08:50 到公司 08:51-08:58 整理简书内容 08:59-09:02 整理桌面卫生 09:03-09:...

  • 2018-05-07

    08:59 到公司 09:01-09:04 整理桌面卫生情况 09:05-09:07 整理上周周报内容 09:08...

  • 08-09B队,六月8-9日训练总结

    国奥越野08-09提高班训练总结 时间:2019-06--08-09 地点:奥体中心训练场、 球队:08-09提高...

  • 08-09提高班三月8-9日训练总结

    国奥越野08-09提高班训练总结 时间:2019-03--08-09 地点:奥体中心训练场、 球队:08-09提高...

  • 2018-03-27

    08:21 到公司 08:22-08:32 查看部门内日志内容 08:33-09:09 处理查看maven私服无法...

  • 2018-04-16

    08:58 到公司 08:59-09:01 整理桌面卫生 09:02-09:06 整理上周周报内容 09:07-0...

  • 2018-04-11

    08:32 到公司 08:33-08:43 整理桌面卫生 08:44-09:20 研究员工离职的原因 09:21-...

  • 2018-04-13

    08:35 到公司 08:36-08:50 整理桌面卫生 08:51-09:00 整理个人简书内容 09:01-0...

  • 2018-08-20(四)知乎好友问题交流:聊天记录如下

    ← 义乌之狼(私人号)与高阳 2018-08 09~2018-08-11 高 08-09 06:56:04 狼哥,...

  • 2018-06-29

    08:44 到公司 08:45-08:46 整理桌面卫生 08:47-09:22 整理6月绩效考核内容 09:23...

网友评论

      本文标题:08/09

      本文链接:https://www.haomeiwen.com/subject/tkvcbftx.html