C语言第十天

来源:互联网 发布:建筑安装预算软件 编辑:程序博客网 时间:2024/05/16 09:09

今天我们学习了动态内存分配,

主要知识点:

// 1.malloc函数
//    // 将堆区内存分配4个字节给一个int型的指针
//    // 返回值 void *代表任何指针
//    // 参数: 分配的内存大小
//    // 考虑到平台不同,可以用sizeof(char)来确定1个字节

// 对分配的内存释放
//    // 无返回值,有一个参数,填任意类型的指针
//    // 释放内存的时候,只是对内存标记为可用,并没有对内存进行清空

// 跟malloc一样,在分配内存的时候清空所有内容,在效率上略低
//    // 参数1:分配多少个内存
//    // 参数2:每一个内存有多大
//    char *str = calloc(2, sizeof(int));
//    printf("%p\n", str);
//    // 重新分配内存大小
//    // 参数1:给谁分配
//    // 参数2:重新分配的大小
//    str = realloc(str, 100);
//    printf("%p\n", str);
//    str = realloc(str, 5000);
//    printf("%p\n", str);
//    
//    // 内存操作函数
//    // 1.初始化内存
//    // 参数1:初始化谁
//    // 参数2:初始化的值
//    // 参数3:初始化多少
//    str = memset(str, 65, 13);
//    printf("%s\n", str);
//    
//    // 2.内存拷贝函数
//    // 参数1:拷贝到谁(dest)
//    // 参数2:从谁拷贝(source)
//    // 参数3:拷贝多少字节
//    
//    // 跟字符串拷贝函数的区别:字符串拷贝只能拷贝字符串,内存拷贝可以拷贝任何内容
//    memcpy(str + 1, "iiioooo", 3);
//    printf("%s\n", str);
//    
//    // 3.内存比较
//    // 参数1和参数2:要比较的两块内存
//    // 参数3:比较多少字节
//    // 返回值:如果两个内存完全一样,返回0
//    // 如果不一样,就把不一样的内存内容取差值返回
//    int result = memcmp(str, "aaa", 3);
//    printf("%d\n", result);
//    free(str);

今天主要就学习这些东西,今天的东西不是特别难,但很抽象,可能有点难理解,但是作业题中,有一道题就不会了,前两道题还可以,我感觉多做做题就理解它的意思了.

通过这几天c语言的学习,我发现自己对编程有了很多的理解,也有很大的进步,原来不知道怎么编的那种纠结现在在逐渐的减少,自己可以多编点东西了,继续加油吧!

0 0
原创粉丝点击