當前位置:首頁 » 編程語言 » c語言數組中元素不滿足數組長度
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言數組中元素不滿足數組長度

發布時間: 2022-12-15 08:18:38

c語言:數組長度不夠大,怎麼辦

如果是局部數組,可能是堆棧溢出,如果是全局數組,可能是編譯器限制。
你用malloc吧,申請到25萬的內存,賦給一個指針就可以了

㈡ C語言中普通數組在定義的時候不給出數組的具體長度,那麼計算機是在運行期間為其分配長度的嗎

變長數組:數組長度為變數,在編譯期間不能確定數組長度,要等到程序運行後,變數賦值後(數組定義語句不要寫在變數賦值之前!),才能給數組分配內存。

變長數組本質還是靜態數組(定義前大小可變,但定義後不能改變大小)。

要定義動態數組需要用malloc函數來申請內存。

㈢ C語言:數組長度不夠大,怎麼辦

定義為全局數組就可以解決這個問題
即把數組定義 int list[250000]放到int main前面

㈣ c語言中如果數組中的元素超出了所定義的數組長度,即形如: a[3]={1,2,3,4} 會怎樣啊

vc中會出錯的,這樣是不允許的。 對於不確定長度的數字數組,你可以先定義一個常量,如 define N 5 然後在程序需要的情況下臨時修改它然後用這個N常量來代表數組元素的個數利用for語句和scanf語句逐個輸入數組元素,結束條件寫if(i<=N)break; 輸出時,數字數組用for 和printf就可以,結束條件為if(i<=N) 如果是字元數組,不用定義常量了,然後定義一個足夠大的字元數組用gets(a)輸入,用printf("%s",a)加循環語句輸出,遇到'\0'自動終止

㈤ C語言 關於數組長度問題

6.選D
首先你要理解二維數組的真正含義,它的第一維就是一組數據的起始地址,第二維就是某組數據中的某個值.其次,你要知道a[][4]所表達的意思,是指二維數組a的每一維都是由4個元素組成的一維數組.而編譯器可以根據你賦給a的初值個數計算它的第一維長度(元素總個數/4,如果不能整除,則長度加1,此時還應該有幾個沒有賦初值的數組元素).而a[3][]的意思從表面上看可以成立,但問題是編譯器不能直接識別其第二維的確切長度(你可以考慮,如果總的初值個數為2時,可以認為a的第二維長度為1,也可以是2,.......),這樣就會產生錯誤.所以,可以a[][4]={*,*,*……}這樣定義,而不能定義a[3][]={*,*,*……}。

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

㈦ c語言中數組長度問題

首先你要明白 一個整形數據或者字元型數據佔多少個位元組 跟你的系統和編譯器都有關
VC++6.0 一個int形佔用四個位元組 一個char形佔用1個位元組然後你的兩個數組都包含7個元素
然而第二個數組的賦值很詭異 字元數組接收一些非字元數據 還真沒試過怎麼樣
字元數組看見一個\0就結束了

㈧ 在C語言中,如果給數組中的全部元素賦值,則在定義數組時,可以不給出數組長度。 對不對

這么說把.字元數組只能初始花時全部賦直,在程序中只能用下標來逐個賦直,在初始化時如果全部指定了初直就可以省略數組長度

㈨ C語言中如果數組長度問題

可以定義一個指針變數,比如整型指針int *a。然後使用malloc函數來為它分配一塊內存,malloc函數的參數是要分配的內存的位元組數,比如malloc(100)。可以用sizeof來計算數據類型所佔的位元組數,比如sizeof(int)可以得到整型變數所佔的位元組數,然後乘以數組的長度就可以得到整個數組所佔的位元組數。對於使用malloc函數分配的內存,使用完後要用free函數來釋放它。使用malloc函數要包含stdlib.h頭文件。下面的程序是個具體例子,它的功能是計算輸入的n個整數的平均值。
#include <stdio.h>
#include <stdlib.h>

float ave(int *a, int n)
{
int *p = a;
float s = 0;
while(p < a + n)
s += *p++;
return s / n;
}

int main()
{
int i, n, *a;
printf("輸入整數個數:");
scanf("%d", &n);
a = malloc(sizeof(int) * n); /*為指針變數a分配內存,然後a就可以象數組那樣使用了*/
printf("輸入%d個整數:\n", n);
for(i = 0; i < n; i++)
scanf("%d", &a[i]);
printf("平均值是%f\n", ave(a, n));
free(a);
return 0;
}

㈩ c語言中定義一個數組可以不寫數組的長度嗎

不可以,如果不能確定長度,請用STL庫里的LIST,MAP,SET等數據類
或者開的數組開的大一些,保證你不會越界,多餘的部分不適用就好

在定義的數組的時候,可以通過變數定義長度如:
scanf("%d", arrayLen);
int[] data = new int[arrayLen];