您的位置:首页 > 文旅 > 旅游 > 韩国互联网公司排名_网站建设推广谷得网络_如何进行推广_seo如何建立优化网站

韩国互联网公司排名_网站建设推广谷得网络_如何进行推广_seo如何建立优化网站

2025/7/22 5:20:24 来源:https://blog.csdn.net/2301_76781059/article/details/145970673  浏览:    关键词:韩国互联网公司排名_网站建设推广谷得网络_如何进行推广_seo如何建立优化网站
韩国互联网公司排名_网站建设推广谷得网络_如何进行推广_seo如何建立优化网站

## 动态内存分配
        -  malloc:   申请空间(连续)       掌握             void malloc(count);
        -  ralloc:   申请空间 + 数据初始化  了解             void ralloc(count,size);
        -  realloc:  修改空间大小(注意是开辟的新/原先的空间)   void realloc(void * 指针变量,修改之后的大小size);
        -  free:     释放空间

        - 细节说明:
         1. malloc()函数创建的空间的单位是字节
         2. malloc()函数返回的是void类型的指针,没有步长的概念,也无法获取空间中的数据,需要强转
         3. malloc()函数返回的仅仅是首地址,没有总大小,最好定义一个变量记录总大小
         4. malloc()函数申请的空间不会自动消失,如果不能正确释放,会导致内存泄露
         5. malloc()函数申请的空间过多,会产生虚拟内存
         6. malloc()函数申请的空间没有初始化值,需要先赋值才能使用
         7. free()函数释放完空间后,空间中的数据叫做脏数据,可能被清空,可能被修改为其他值
         8. colloc()函数就是在malloc的基础上多了一个初始化的动作
         9. realloc()函数修改之后的空间,地址值有可能发生变化,也有可能不会改变,但是原先的数据不会
         10. realloc()函数修改之后,无需释放原来的空间,函数底层会进行处理

        #include<stdio.h>#include<stdlib.h>void method(int* p,int size);int main() {/*1.利用malloc函数申请一片连续的空间需求:申请一片空间,要存储10个int类型的整数,返回这片空间的首地址*/int* p = (int * )malloc(10 * sizeof(int));//malloc()函数返回值类型是void,所以要进行强制转换// int* p = (int * )malloc(10 , sizeof(int));int size = 10;//2.赋值for (int i = 0; i < size; i++){//第一种赋值方式:*(p + i) = (i + 1) * 10;//第二种赋值方式://p[i] = (i + 1) * 10;}//3.遍历for (int i = 0; i < size; i++){printf("%d\n",*(p + i));}//或调用函数:method(p,size);//4.扩容,20个int类型的整数int* pp = (int * )realloc(p, 20 * sizeof(int));//该函数除了扩容外,还将原先的数据进行了拷贝//5.释放空间free(pp);return 0;}void method(int* p,int size){for (int i = 0; i < size; i++){printf("%d\n",*(p + i));}printf("\n");}


## c语言的内存结构
        -  :程序运行的区域,变量,数组
        -  :malloc()函数开辟的空间在堆里
        - 初始化静态区:static全局变量已初始化
        - 未初始化静态区:static全局变量未初始化
        - 常量区:用指针类型定义的字符串,例如:char * arr[50] = "dargagfad";
        - 代码运行区:运行时代码加载到这里

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com