内存开辟,内存大小,字符长度的讨论
时间:2010-08-05 来源:y307921462
#include "stdafx.h" |
原型:extern void *calloc(int num_elems, int elem_size);
用法:#include <alloc.h>
功能:为具有num_elems个长度为elem_size元素的数组分配内存,分配时把所分配的内存置为0,所以上例中字符串长度是0;
说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。
当内存不再使用时,应使用free()函数将内存块释放。
原型:extern void *malloc(unsigned int num_bytes);
用法:#include <alloc.h>
功能:分配长度为num_bytes字节的内存块,不清空,所以字符串长度不为0
说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。
当内存不再使用时,应使用free()函数将内存块释放。
原型:extern int strlen(char *s);
用法:#include <string.h>
功能:计算字符串s的长度,遇到\0则返回,需注意
说明:返回s的长度,不包括结束符NULL。
原型:extern char *strstr(char *haystack, char *needle);
用法:#include <string.h>
功能:从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)。
说明:返回指向第一次出现needle位置的指针,如果没找到则返回NULL。如寻找“ABC”,则返回‘A’的地址;
sizeof:首先,sizeof不是函数,返回一个对象后者类型所占的内存空间,用法有
1、sizeof(object):对象使用object,可以写成sizeof object,如int n;sizeof n;或者sizeof(i)都一样
2、sizeof(typename):类型使用,可以用sizeof(typename),如sizeof(int),可见,使用sizeof()永远是正确的。
也可以对函数使用,如sizeof(a()),返回函数a()的返回值所占空间。