當前位置:首頁 » 編程語言 » c語言不定長數組

c語言不定長數組

發布時間: 2022-04-04 21:44:29

1. c語言中可以定義不定長度的數組(即數組長度由變數確定)嗎

不可以,數組在創建時長度已經確定了,而且創建後也無法更改數組的長度,樓上說的malloc動態申請的內存也是已確定的,你都不能在 不破壞原有數據的情況下改變其大小。
那怎麼儲存未知大小的數據呢,在儲存後怎樣能隨意的對其添加、更改、刪除、查找等一系列操作呢?只用簡單的數組肯定不行,需要用到別的數據結構,如鏈表、二叉樹等等,總有一款適合你。在大家學到數據結構與演算法的時候 ,一切難題都將迎刃而解。
最後補充一點,樓上有人說數組的長度不能用變數來確定,這是錯誤的。 C中有 變長數組 的概念呀(c99標准),「變長」的意思就是 可以用變數來指定數組的長度,而數組一旦創建 長度就無法變化了,而且變數必須賦值在先,變長數組才能創建。某些人不能因為無法正確的設置編譯器支持c99標准,而否定了 變長數組 這個用法。

2. c語言中不定長數組是指的變長數組嗎

變長數組在C++中指的是集合(也叫容器)
如vector就是

C語言中,所有的數組都不定長,沒有下標越界的概念,數組實質就是一個指針(由數組名充當),因此C語言中數組的長度沒有任何意義
平常在C語言中講的不定長數組,其實就是指針。比如char *p;這句就定義了一個不定長的字元數組p(長度任意)

3. c語言 怎麼聲明一個不確定大小的數組

C沒有提供現成的辦法。不過我在實際工作中做過,用起來挺爽的。聲明一個所需類型的指針p,用malloc函數申請一個較小的空間(例如10個元素)並將首地址賦給p就構成了以p為首地址的一維數組;然後向數組輸入數據;輸入滿後還需輸入時,用上述同樣辦法另申請一個以指針q為首地址的較大的數組(例如20個元素)。把p的數據全拷貝到q數組,把p指向的空間釋放並讓p指向q,繼續輸入……如此反復。

4. 在c語言中如何將一組不定長度的數存入數組

C語言中不能定義未確定個數的數組,不過可以用指針來變相的完成你的要求。
示常式序如下:
#include<stdio.h>
#include<stdlib.h>
void main()
{
int* p;
int n,i=0;
scanf("%d",&n);
printf("請輸入%d個數字:\n",n);
p=(int*)malloc(n*sizeof(int));
for(;i<n;i++)
{
scanf("%d",p+i);
}
printf("輸入的數字有:");
for(i=0;i<n;i++)
printf("%d ",*(p+i));
puts("");
}
該程序完成了用指針定義N個整數數組的功能,如果有其它的類型只需要改變指針和malloc中的類型即可,有問題hi我

5. 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就是元素個數

6. c語言輸入不定長數組,第一個數總是消失,程序如下,請大牛回答,怎麼改

輸入的時候 在前面加一個空格 因為被你的getchar()把1拿走了
或者代碼改為
do
{
scanf("%d",&a[i]);
i++;
}while((getchar())!='\n');

7. c語言,輸入一個長度不定的整型數組(1000位以內),我要怎麼知道該數組的長度。

一般有兩種方式。
1 第一個輸入為數組長度。 比如輸入 3 12 45 87
2 以特定輸入為結束標記, 比如 以0,-1或者EOF作為結束標記。或者整行輸入,以換行符為結束標記。
一般來說,在自動判題系統中,以EOF為結束, 或先輸入長度, 是最為常見的兩種方式。

8. c語言不確定長度二維數組申明與初始化

那不是rnum和cnum的問題,而是三級指針dataarray的類型與float[rum][cnum]不匹配。二級指針dataarray只與float[rum]的類型匹配,*dataarray才與float[rum][cnum]匹配。

9. 請問C語言中,如何在結構體內定義長度不確定的數組呢

兩種方法:
一種是採用指針, 動態分配內存
另一種請搜索"柔性數組", 這種方式同樣需要在堆中動態分配內存.

10. C語言不定大小二維數組

把你的所有len[]改成len就行了。len就1個元素,那實質就是一個變數,幹嘛要聲明成1個元素的數組呢?不是自找麻煩嗎?原來只有len[0]有效,可代碼中幾處用了len[1],因為沒有為其賦值,一般情況下其中的值很大或是負數(隨機的),代碼啥時才能做完啊……
另:你沒有釋放內存!大忌!

熱點內容
銳程cc藍鯨版選什麼配置 發布:2025-01-19 06:56:28 瀏覽:168
城鎮居民醫保卡的原始密碼是多少 發布:2025-01-19 06:55:54 瀏覽:787
wifi密碼如何修改密碼 發布:2025-01-19 06:39:06 瀏覽:961
sqlserver認證 發布:2025-01-19 06:34:30 瀏覽:815
小米8se安卓p有什麼功能 發布:2025-01-19 06:25:22 瀏覽:358
ucos和linux 發布:2025-01-19 06:24:06 瀏覽:470
關閉chrome緩存 發布:2025-01-19 05:43:55 瀏覽:830
修改svn伺服器ip地址 發布:2025-01-19 05:32:00 瀏覽:441
iis伺服器搭建出現404錯誤 發布:2025-01-19 05:26:39 瀏覽:312
怎麼看在電腦里的配置 發布:2025-01-19 04:45:54 瀏覽:814