关于内存
指针与数组
虽然数组名是指向数组首地址的指针,但指针和数组的区别就是,创建数组时,会分配好一定大小的空间,然后数组名指针指向该片空间,而创建指针
时并不会分配空间
例 char* s=“hello”;
是使得指针s指向常量区的hello字符串,此时若修改该字符串,则会产生错误。因为常量区内存不可修改
而 char s[]=‘hello’;则会分配一块内存,并修改内存内容为“hello”,s指针不指向常量区,因此可以修改。
malloc realloc free
动态内存分配了使用完后一定要free
特别是在循环里面多次分配内存时,如果下一轮开始前不free掉,那么多轮循环后会占用大量空间。
realloc可扩展原来分配的内存,保留原有数据不变(除非新空间小于原有空间)
分配内存耗时较多,一次分配太大可能内存超过限制,但若不断realloc会耗费大量时间导致超时