首页 > 其他分享 >使用malloc实现动态动态数组

使用malloc实现动态动态数组

时间:2023-04-06 12:56:07浏览次数:38  
标签:malloc int len 数组 prr 动态

静态数组有一个弊端,就是在创建的时候数组的长度就已经确定了,并且不能更改了,并且使用之后如果我们不需要了,还不能销毁。使用malloc函数可以实现动态的创建数组,我们需要多长 的数组就创建多长的数组,而且当我们不需要了,可以进行动态的销毁,从而实现了对我们计算机内存的回收利用

``

#include "stdio.h"
#include"malloc.h"
int main()
{
  //静态数组
  int a[5] = {3,4,0,1,4};
  int len;
    printf("请输入你要创建数组的长度:len=:\n");
    scanf("%d",&len);
    int *prr = (int *)malloc(sizeof (int)*len);//prr存储数组的地址
    //此时可以完全将prr看成是一个数组
    for(int i=0;i<len;i++)
    {
        //给数组赋值
       scanf("%d",&prr[i]);
       // scanf("%d",&*(prr+i));
    }
    printf("静态数组输出:\n");
    for(int i= 0;i<5;i++)
    {
        printf("%d ",a[i]);
    }
    printf("\n");
    printf("动态数组输出:\n");
    for(int i=0;i<len;i++)
    {
        printf("%d ",prr[i]);
       // printf("%d ",*(prr+i));
    }
    printf("\n");
    free(prr);//回收分配的内存
    return 0;
}

标签:malloc,int,len,数组,prr,动态
From: https://www.cnblogs.com/swtaa/p/17292432.html

相关文章

  • 数组面试题
    1.消失的数字题目链接题目描述 解题思路异或操作符支持乘法交换律---> 0^3^0^1^0^1^2^3--->0^0^0^1^1^3^3^2--->相同的值异或为0--->0^2--->2intmissingNumber(int*nums,intnumsSize){intval=0;inti=0;for(i=0;i<numsSize;i++......
  • 【LeetCode剑指offer 01】数组中重复的数字、两个栈实现队列
    数组中重复的数字数组中重复的数字找出数组中重复的数字。在一个长度为n的数组nums里的所有数字都在0~n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例1:输入:[2,3,1,0,2,5,3]输......
  • C++/CLI 托管C++的数组介绍【4】
    Git源码地址 C++/CLI托管C++的托管与非托管字符串的相互转换【1】C++/CLI托管C++的数据类型介绍【2】C++/CLI托管C++的基本数据类型及函数【3】C++/CLI托管C++的数组介绍【4】C++/CLI托管C++之字符串封装【5】C++/CLI托管C++之enum枚举封装【6】C++/CLI托管C++之类、属性......
  • easyexcel动态下拉框,动态表头
    privatestaticfinalintFLAG1=1;privatestaticfinalintFLAG2=2;privatestaticfinalintFLAG3=3;/***动态列头**@return*/privateList<List<String>>head(IntegerheadFlag){List<User>userList=newArrayList<>......
  • 动态内存管理——动态内存函数
    动态内存管理,也叫动态内存分配,顾名思义:动态的来分配内存。1.为什么存在动态内存分配我们已经知道的内存分配方式有:创建一个变量:整型,分配4个字节的空间;长整型;分配8个字节的空间,又或者创建一个数组,创建一个函数的形参........但是,这些开辟空间的方式都有两个特点:1.空间大小固定; 2.......
  • 448.找到所有数组中消失的数字
    找到所有数组中消失的数字给你一个含n个整数的数组nums,其中nums[i]在区间[1,n]内。请你找出所有在[1,n]范围内但没有出现在nums中的数字,并以数组的形式返回结果。示例1:输入:nums=[4,3,2,7,8,2,3,1]输出:[5,6]示例2:输入:nums=[1,1]输出:[2]提示:n==nums......
  • LeetCode 81. 搜索旋转排序数组 II
    1classSolution{public:boolsearch(vector<int>&nums,inttarget){intindex=-1;for(inti=0;i<nums.size()-1;++i){if(nums[i]>nums[i+1])index=i;}if(index==-1){......
  • HJ103 Redraiment的走法(梅花桩递增可走的最多步数)_排序_动态规划
    思路:该题目符合,最优结果拥有最优子结果的特征。考虑用动态规划。通过循环获取每个参数作为最后一个桩的最优子结果,后面桩的结果为前一个桩的最优子结果+1。如梅花桩“251545”。参考高赞答案,代码如下1importsys2a=int(sys.stdin.readline().strip())3b=list(map(......
  • HJ64_MP3光标位置_数组_模拟思路_滑动窗口
    思路:用模拟跟踪U、D得输出的歌曲,用双指针跟踪歌曲当前窗口。注意,在第一首向上滑动,和最后一首向下滑是,窗口特殊跳动,此时双指针指向特殊处理。留意到,不管是特殊情况还是普通情况,指针上划时歌曲减一。如1调到10,10上划为9,视为减一。得到代码如下:importsysa=int(sys.stdin.......
  • JavaScript中数组元素删除的七大方法汇总
    原文链接:https://blog.csdn.net/u010323023/article/details/52700770 在JavaScript中,除了Object之外,Array类型恐怕就是最常用的类型了。与其他语言的数组有着很大的区别,JavaScript中的Array非常灵活。今天我就来总结了一下JavaScript中Array删除的方法。大致的分类可以分为如下......