C语言 - 初级内存

本文介绍了C语言中内存的五个区域:代码区、常量区、静态区、堆区和栈区,强调了栈区的特性和安全问题。通过示例详细讲解了动态内存分配函数calloc和realloc,以及内存操作函数memset、memcpy和memcmp的用法。
代码区:存放的都是编译后形成的二进制文件.
常量区:关键词const.放在常量区的常量是只读不可写的.
静态区:关键词static.只被初始化一次,默认值为0,程序运行完就会被释放.
堆区:关键词malloc.是由程序员手动分配和释放的,它的空间比较大.
(内存释放:关键词free,内存都是标记释放的,只是指针不指向这里了,但是内容还在.)
栈区:存储的是局部变量和函数参数.(即卸载花括号里的变量)
栈区的特点:先进后出,即从高到低分配,从低到高使用.
注意!!!!!!!!!通过指针操作,返回栈内存是不安全的.栈区的内存是系统自动分配和释放的,栈区的空间容量是很小的.

内存分配函数:
void *calloc(n,size);
例如:
    int *p = calloc(10, 2);
    for (int i=0; i<20; i++) {
        *(p+i) = 2;
        printf("%d ",*(p+i));
    }


void *realloc(*p,new size);
例如:
int *p = calloc(10, 2);
    for (int i=0; i<20; i++) {
        *(p+i) = 2;
        printf("%d ",*(p+i));
    }
    printf("\n");
    int *p2 = realloc(p, 5);
    for (int i=0; i<5; i++) {
        *(p+i) = 2;
        printf("%d ",*(p2+i));
    }

内存操作函数:
内存赋值:void *memset(void *s , int c , size_t n);
例如:
   char *p1 = malloc(8);
    char *p2 = memset(p1, 97, 8);
    for (int i=0; i<8; i++) {
        printf("%c ",*(p2+i));
    }

内存拷贝:void *memcpy(void *dest,const void*source,size_t n);
例如:
    char *p1 = malloc(8);
    char *p2 = memset(p1, 97, 8);
    for (int i=0; i<8; i++) {
        printf("%c ",*(p2+i));
    }

    char *p3 = malloc(5);
    p3 = memcpy(p3, p2, 5);
    for (int i=0; i<5; i++) {
        printf("%c ",*(p3+i));
    }

内存比较:int memcmp(const void *buf1, const void *buf2, unsigned int count)
例如:
    char *p4 = malloc(8);
    char *p5 = malloc(8);
    memset(p4, 65, 8 );
    memset(p5, 97, 8 );
    int count = memcmp(p4, p5, 8);
    printf("%d",count);
第一个参数是被减指针,第二个参数是减数指针,第三个参数是比较几个字节.跟strcmp类似,也是比较的ASCLL码表的值.

内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值