c语言中怎样定义一个未知长度的数组??

2025-03-22 00:57:55
推荐回答(2个)
回答(1):

设置值等于null就行了 追问: 给个例子白?? 小弟 是自学的!悟性低啦??谢谢!! 回答: int[] a=null; 就是把 数组 a的值设置为空。所以系统没有为他分配内存,等你给数组a赋值的时候 系统会自动给他分配相应的内存 追问: 我在手机上的搜索貌似说的是用到 链表 和指针神魔的??但是找不到啦!!麻烦您能帮忙给个例子不??谢谢!! 回答: 链表 指针 需要用这么麻烦吗。 我从没这样弄过。 你需要的是一个未知长度的 数组 ,所以不给这个数组赋值就是最好的。 比如int[] a; 这就是申明一个 数组变量 a ,但没给他赋值 所以他就没有长度 追问: 哦 好吧!!嘿嘿!!谢谢啦!!知道啦!! 回答: 速度选个满意呗

回答(2):

  除常量数组外,数组必须是定长的,如果不知道长度,有几种办法,固定分配一个认为不会出现的维度值,或者对数组进行动态分配,如:

int *pArray,nCount;
int Insert(int * pArray,int nCount,int nElement)
{
  int *pInt;  
 
    pInt = new int[nCount+1];
     if(nCount>0)memcpy(pInt,nArray,nCount);
     pInt[nCount++] =  nElement   ;
     if(pArray)delete   pArray;
    pArray =  pInt;
   return nCount;

main()
{
   nCount = 0,pArray = NULL;
    nCount  = Insert(pArray,nCount,99);
}