技巧一、如果要动态申请空间,malloc函数最好紧跟在声明变量之后,而不是紧挨着它第一次被使用之前
原因分析:申请空间越早,编译器就能更早发现内存空间不足,从而给我们程序员更早提醒。如果每次都是在快要使用该变量时,才去申请空间。这样很容易出现,在程序运行中途出现内存空间不足的现象。所以最好是一开始时就申请空间。
PS:如果是设计程序时,遇到内存空间实在不足,则最好是尽量多用动态分配。多分配,多释放,这样能够让小内存设备运行良好。
技巧二、每次指针变量申请完空间后,都必须紧跟在这一行后面,就判断该指针变量是否为NULL
原因分析:如果不对指针变量进行判断的话,某些时候会出现指针指向别的地址,而不是分配空间地址。加上一个保险,还是很有必要的。
技巧三、在判断一个数组或者结构体时候需要动态分配时,最好确定一个大小标准(如1Kb)
原因分析:在使用数组或者结构体时,如果分配静态空间的话,会占用太多的空间,这时就需要判断它时候需要进行动态分配了。一般而言,可以设定一个阈值,如1Kb或者512b,如果sizeof(struct) * MaxSize大于它了,就规定需要动态分配。这对程序的良好运行,还是很有帮助的。
技巧四、如果一个函数需要深度递归调用,则其声明的数组,如果比较占用空间大的话,最好要改为动态分配
原因分析:深度递归毫无疑问会让数组占用太多空间,所以还是放在堆里更好些。