zoukankan      html  css  js  c++  java
  • 动态分配内存-realloc

    动态分配内存---relloc

    关于 malloc 就不多说了,现在看看 realloc:

    函数声明: void *realloc(void *ptr, size_t size);

    功能:动态改变指针指向的内存块的大小。

    使用:如果 ptr 指针是空指针,该函数的作用同 malloc;

               如果 size 的大小小于之前 malloc或 realloc 分配的大小,那么原来内存块的数据会丢失,只保留现有数据;

               如果 size 的大小大于之前 malloc或 realloc 分配的大小,那么将会分配一块新的大小的内存块。

               新的内存块将会复制原来内存块的数据,原来的内存块会被释放。

    DemoCode:

    #include<stdio.h>
    #include<stdlib.h>
    int main(void)
    {
        int a,*p;
        int i=0,j=0;
        char b;
        p = (int *)malloc(sizeof(int));
        printf("原来指针指向地址:%p
    ",p);
        while(1)
        {
            scanf("%d%c",&a,&b);
            p[i] = a;
            if(b != '
    ')
            {
                i++,j=i;
                p = (int *)realloc(p,sizeof(int)*(i+1));
            }
            else
                break;
        }
        printf("新指针指向地址:%p
    ",p);
        for(i=0;i<=j;i++)
            printf("%d	",p[i]);
        printf("
    ");
        free(p);
        return 0;
    }

    这样就可以根据需要来使用内存了。

  • 相关阅读:
    Bootstrap-select 动态绑定值
    Centos 下载
    设置图片大小和旋转
    aolication全局传递参数
    Activity静态变量传递参数
    Activity传递参数
    Activity横屏后声明周期的变化
    Intent隐式意图
    Intent显示意图的四种跳转
    SharedPreferences简单的应用
  • 原文地址:https://www.cnblogs.com/M-Anonymous/p/9671171.html
Copyright © 2011-2022 走看看