关于内存

指针与数组

虽然数组名是指向数组首地址的指针,但指针和数组的区别就是,创建数组时,会分配好一定大小的空间,然后数组名指针指向该片空间,而创建指针
时并不会分配空间

例 char* s=“hello”;
是使得指针s指向常量区的hello字符串,此时若修改该字符串,则会产生错误。因为常量区内存不可修改
而 char s[]=‘hello’;则会分配一块内存,并修改内存内容为“hello”,s指针不指向常量区,因此可以修改。

malloc realloc free
动态内存分配了使用完后一定要free
特别是在循环里面多次分配内存时,如果下一轮开始前不free掉,那么多轮循环后会占用大量空间。

realloc可扩展原来分配的内存,保留原有数据不变(除非新空间小于原有空间)

分配内存耗时较多,一次分配太大可能内存超过限制,但若不断realloc会耗费大量时间导致超时

全部评论

相关推荐

one_t:硕还是本?什么岗
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务