• C语言stdlib库中的malloc和realloc


    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    
    //void *malloc(size_t size) 
    //分配所需的内存空间,并返回一个指向它的指针。若失败,则返回NULL
    
    //char* strcpy(char* dest, const char* src) 
    //把 src 所指向的字符串复制到 dest。
    //如果目标数组 dest 不够大,而源字符串 src 的长度又太长,可能会造成缓冲溢出的情况。
    
    //char *strcat(char *dest, const char *src) 
    //把 src 所指向的字符串追加到 dest 所指向的字符串的结尾。
    
    //void* realloc(void* ptr, size_t size) 
    //尝试重新调整之前调用 malloc 或 calloc 所分配的 ptr 所指向的内存块的大小。
    
    
    int main()
    {
        //分配内存
        char* str = (char*)malloc(10);
        strcpy(str, "hello malloc");
        printf("str = %s,  address = %u
    ", str, str);
    
        //重新分配内存
        str = (char*)realloc(str, 25);
        strcat(str, " realloc");
        printf("str = %s,  address = %u
    ", str, str);
        free(str);
    
        return(0);
    }
    

    程序输出:

    str = hello malloc,  address = 7953136
    str = hello malloc realloc,  address = 7953136
    
  • 相关阅读:
    JDBC数据库连接
    JDBC驱动程序类型
    JDBC简单示例代码
    JDBC SQL语法
    JDBC是什么?
    JDBC快速入门教程
    JUnit4参数化测试实例
    JUnit套件测试实例
    JUnit4时间(超时)测试实例
    JUnit4忽略(Ignore)测试实例
  • 原文地址:https://www.cnblogs.com/liutongqing/p/13373082.html
Copyright © 2020-2023  润新知