1. calloc(配置内存空间)
相关函数 malloc,free,realloc,brk#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
#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; }