Linux Glibc(学习笔记五)待续。。。。
来源:互联网 发布:垃圾焚烧发电厂 知乎 编辑:程序博客网 时间:2024/05/01 08:54
内存及字符串
1. calloc(配置内存空间)
相关函数 malloc,free,realloc,brk表头文件 #include <stdlib.h>
定义函数 void *calloc(size_t nmemb,size_tsize);
函数说明 calloc()用来配置nmemb个相邻的内存单位,每一单位的大小为size,并返回指向第一个元素的指针。这和使用下列的方式效果相同: malloc(nmemb*size);不过,在利用calloc()配置内存时会将内存内容初始化为0。
返回值 若分配成功则返回一个指针,失败则返回NULL。
范例 /* 动态配置10个int空间*/
#include <stdlib.h>struct test{int a[10];char b[20];};int main(){int *ptr = NULL, *ptr1 = NULL;ptr = calloc(10, sizeof(int));ptr1 = calloc(10, sizeof(struct test));if(NULL != ptr){printf("free ptr memory!\n");free(ptr);}if(NULL != ptr1){printf("free ptr1 memory!\n");free(ptr1);}return 0;}
2. malloc(配置内存空间) 相关函数 calloc,free,realloc,brk
表头文件 #include<stdlib.h>
定义函数 void * malloc(size_t size);
例:malloc(sizeof(type)*num)
函数说明 malloc()用来配置内存空间,其大小由指定的size决定。
返回值 若配置成功则返回一个指针,失败则返回NULL。 单位为字节B
例如:void *p = malloc(1024);
realloc( 更改已分配的内存空间)
定义函数 void * realloc(void *ptr, size_t size);
3. free(释放原先配置的内存) 相关函数 malloc,calloc,realloc,brk
表头文件 #include<stdlib.h>
定义函数 void free(void *ptr);
函数说明 参数ptr为指向先前由malloc()、calloc()或realloc()所返回的内存指针。调用free()后ptr所指的内存空间便会被收回。假若参数ptr所指的内存空间已被收回或是未知的内存地址,则调用free()可能会有无法预期的情况发生。若参数ptr为NULL,则free()不会有任何作用。(不能进行连续两次free)
例子参考1
相关函数 sbrk
表头文件 #include<unistd.h>
定义函数 size_t getpagesize(void);
函数说明 返回一分页的大小,单位为字节(byte)。此为系统的分页大小,不一定会和硬件分页大小相同。
返回值 内存分页大小。
附加说明在Intelx86 上其返回值应为4096bytes。
#include <stdlib.h>int main(){printf("page size = %d;\n", getpagesize());return 0;}
5. index(查找字符串中第一个出现的指定字符) 相关函数 rindex,strchr,strrchr
表头文件 #include<string.h>
定义函数 char * index( const char *s, intc);
函数说明 index()用来找出参数s字符串中第一个出现的参数c地址,然后将该字符出现的地址返回。字符串结束字符(NULL)也视为字符串一部分。
返回值 如果找到指定的字符则返回该字符所在地址,否则返回0。
#include <string.h>int main(){char *s = "0123456 7890123456789";char *p = NULL, *p1;p1 = index(s, '6');p = index(s, ' ');printf("address:%s, char[%c]\naddress:%s, char[%c]\n", p1, *p1, p, *p);return 0;}
- Linux Glibc(学习笔记五)待续。。。。
- Linux Glibc(学习笔记三)
- Linux Glibc(学习笔记四)
- 概率论与数理统计学习笔记五:假设检验(未完待续)
- 尚学堂 linux视频学习笔记(未完待续)
- linux常用命令(笔记-待续)
- GDI+学习笔记(待续)
- SQL学习笔记(待续)
- vim学习笔记(待续...)
- EJB学习笔记 (待续)
- C\C++ 程序员从零开始学习Android - 个人学习笔记(五) - java基础 - 类(待续)
- Linux学习笔记(五)
- Linux学习笔记(五)
- Linux学习笔记(五)
- Linux学习笔记(五)
- Linux学习笔记(五)
- linux学习笔记(五)
- linux学习笔记(五)
- HttpClient PostMethod模拟带文件上传+普通字段的http请求(可解决文件为网络文件的问题)
- Difference between message queue and event
- android_Quantity Strings (Plurals)
- Oracle 10g RAC spfile 的基本管理
- 学习目标
- Linux Glibc(学习笔记五)待续。。。。
- JSP原理笔记(一)
- Editing Existing Items in Checklist
- HTTP协议的主要特点
- Unity写在前面
- C语言 volatile 修饰符
- CPU的利用率是怎么计算的
- 死锁的防止方法
- PHP JSON格式数据交互实例详解