zoukankan      html  css  js  c++  java
  • 关于变长数组的一点小想法-C语言定义数组但是数组长度不确定怎么办

    很多数据机构,比如栈,链表等,都可以动态分配存储空间

    那么数组呢?一般声明时都要指定数组长度,那么数组可以实现动态分配么?

    假设数组存的是int型
    那么 你先申请10个元素
    int* a = (int*)malloc(sizeof(int)*10);
    如果又来了个元素,那么你就可以
    a=(int *)realloc(a,11*sizeof(int)); 
    求元素个数int i,n=1;
    for(i = 0;(a+i)!=NULL;i++)
    {
        ;
    }
    n=i+1;//n就是元素个数

    代码验证~~

    #include "stdafx.h"
    #include<stdio.h>
    #include<malloc.h>
    #define n 6//这个n只是为了模拟变长,n可以是其他函数的返回值或者用户输入的数据
     
    int main(int argc, char* argv[]){
    	
    	int m;
    	int *a,*b,*a_same,*b_same;
    	
    	//----------初始化------------- 
    	printf("输入数组a的个数:
    ");
    	scanf("%d",&m);
    	a=(int*)malloc(m*sizeof(int));//动态分配数组
    
    	printf("输入数组a的值:
    ");
    	for(int i=0;i<n;i++)//这个n只是为了模拟变长,n可以是其他函数的返回值或者用户输入的数据
     
    	{   if (i<m)
    		{
    		scanf("%d",a+i);
    
    		}
         	if (i>=m)
    		{
    		a=(int*)realloc(a,(i+1)*sizeof(int));
         	scanf("%d",a+i); 
    		}
    		
    	}
    	
    	
    		printf("%d",a[5]);
    return 0;
    }
    

      

    image

  • 相关阅读:
    月食照片
    宾得镜头大全与发展史
    月食照片
    关于镜头系数的疑问
    经验和教训
    常用正则表达式
    12月19日
    部長面談
    周六
    异度空间
  • 原文地址:https://www.cnblogs.com/hhddcpp/p/4303846.html
Copyright © 2011-2022 走看看