EPANET源码中用到的几个简单C语言函数介绍二

1.malloc

原型:extern void *malloc(unsigned int num_bytes);

头文件:在TC2.0中可以用malloc.h或 alloc.h (注意:alloc.h 与 malloc.h 的内容是完全一致的),而在Visual C++6.0中可以用malloc.h或者stdlib.h

功能:分配长度为num_bytes字节的内存块。
 
返回值:返回类型是 void* 类型。void* 表示未确定类型的指针。C,C++规定,void* 类型可以强制转换为任何其它类型的指针。如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释放。
 
说明:关于该函数的原型,在旧的版本中malloc返回的是char型指针,新的ANSIC标准规定,该函数返回为void型指针,因此必要时要进行类型转换。
 
名称解释:malloc的全称是memory allocation,中文叫动态内存分配,当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存。
 
2.calloc
 
原型: void *calloc(unsigned n,unsigned size)
 
头文件:stdlib.h或malloc.h
 
功 能: 在内存的动态存储区中分配n个长度为size的连续空间,函数返回一个指向分配起始地址的指针;如果分配不成功,返回NULL。
 
跟malloc的区别
 
  calloc在动态分配完内存后,自动初始化该内存空间为零,而malloc不初始化,里边数据是随机的垃圾数据。

3.rewind
 
用 法: void rewind(FILE *stream);
 
头文件: stdio.h
 
返回值:
 
功 能: 将文件内部的位置指针重新指向一个流(数据流/文件)的开头
 
注意:不是文件指针而是文件内部的位置指针,随着对文件的读写文件的位置指针(指向当前读写字节)向后移动。而文件指针是指向整个文件,如果不重新赋值文件指针不会改变。
 
英文释义:[ri:ˈwaɪnd]  v.倒回(影片、录音带等);重绕  n.重绕;倒带器

4.strchr
原型:extern char *strchr(const char *s,char c);
 
头文件:#include <string.h>
 
功能:查找字符串s中首次出现字符c的位置
 
说明:返回首次出现c的位置的指针,如果s中不存在c则返回NULL。
 
返回值:Returns the address of the first occurrence of the character in the string if successful, or NULL otherwise
 
5.strcspn
 
原型:size_t strcspn(const char *s1,const char *s2);
 
相关头文件:#include <string.h>
 
功能:找到s1与s2中第一个相同的字符,返回这个字符在S1中第一次出现的位置。
 
说明:返回第一个出现的字符在s1中的下标值,亦即在s1中出现而s2中没有出现的子串的长度。简单地说,若strcspn()返回的数值为n,则代表字符串s1开头连续有n个字符都不含字符串s2内的字符。
 
 
原文地址:https://www.cnblogs.com/KingOfFreedom/p/2811737.html