1、传统数组:首先传统数组的大小只能在编译前确定(静态),不能改变。其次传统数组分配的内存不能被手动释放,而且内存空间会一直被占用,直至程序结束,才有系统释放。再其次在其它函数中定义的传统数组,只能在该函数运行期间被其他函数使用。一旦该函数结束,其他的函数不能使用该数组(因为该数组空间已被释放)。即传统数组不能跨函数使用
2、动态分配内存很好的解决了上述问题。。
void *malloc(int):该函数形参是整型,但在传参数时应注意,应使用(sizeof(typename))进行传参,考虑到不同的机器环境,其数据类型所占的空间不同,仅仅用整数(如4)在跨平台时,可能会出错的;该函数的返回值是void * 指针类型,所以在malloc前应进行强制类型转换(如(int*)),同时应注意,该函数返回的地址是分配空间的第一个字节地址;