c语言动态数组如何扩充空间

Python09

c语言动态数组如何扩充空间,第1张

c语言动态数组扩充空间,主要是利用动态存储分配函数来实现的,常用的有malloc函数和calloc函数。

malloc()是C语言中动态存储管理的一组标准库函数之一。其作用是在内存的动态存储区中分配一个长度为size的连续空间。其参数是一个无符号整形数,返回值是一个指向所分配的连续存储域的起始地址的指针

例如:

char *x

x = (char *)malloc(10)//x就指向了包含10个字符单元的存储空间。

扩展资料:

函数定义

其函数原型为void *malloc(unsigned int size);其作用是在内存的动态存储区中分配一个长度为size的连续空间。此函数的返回值是分配区域的起始地址,或者说,此函数是一个指针型函数,返回的指针指向该分配域的开头位置。

如果分配成功则返回指向被分配内存的指针(此存储区中的初始值不确定),否则返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释放。函数返回的指针一定要适当对齐,使其可以用于任何数据对象。

参考资料来源:百度百科-malloc函数

不会自动扩容,你这个赋值其实已经越界了,但是编译器不会检查是否越界,所以可以编译,不报错。

需要注意:越界之后,可能会出现不可预料的问题,也就是很多书上说的,行为未定义,所以应该特别注意这种情况