c語言陣列刪除問題,C語言中刪除一個陣列元素

2022-06-02 04:06:39 字數 1779 閱讀 9777

1樓:匿名使用者

可是那要是刪除陣列最後一個元素要怎麼弄? 忽略最後一個元素,陣列長度變小一個就可以了,不用動這個資料。

#include

void del_num( int *a , int n, int *cnt )

else

*p++=a[i] ;

}(*cnt) -= flag ;

}int main()

;int n ,cnt ;

cnt=8 ; //8個元素

scanf( "%d" , &n );

del_num( a, n , &cnt );

for( n=0;n

printf( "\n" );

return 0;}

2樓:陳宗權

刪除一個元素,你肯定要用一個變數來記錄還剩下多少個有效元素。

刪除最後一個元素更簡單,你連移動覆蓋都省了,只需要把有效元素個數減1就可以了。

3樓:匿名使用者

1、普通陣列是不能被刪除的,出發是動態分配的記憶體。動態記憶體分配函式malloc建立陣列,直接使用free函式即可實現陣列刪除。

2、free函式:

原型:void free(void *ptr);

功能:釋放malloc(或calloc、realloc)函式給指標變數分配的動態記憶體;

標頭檔案:malloc.h或stdlib.h;

為了避免釋放已經釋放了記憶體的指標記憶體,或沒有釋放記憶體,在c語言中最好是在定義指標時賦初值null,釋放後立即賦null,釋放時檢查指標值再決定釋放就避免釋放錯誤了,例如:

int *a = null

int *b = (int*) malloc(sizeof(int) * 10);

a= b;

/* 執行大量操作後 */

if(a != null)

if(b != null)

----------------------------------

c語言中刪除一個陣列元素 30

4樓:匿名使用者

一般的陣列元素無法刪除,只能將值改變為另一個特定的值,然後發現這個值就直接轉向下一個元素.

用連結串列可以刪除表中的一個結點.

5樓:匿名使用者

可以不輸出 也可以把要輸出的部分存入另一個陣列 最好用連結串列 節省空間

6樓:匿名使用者

可以設定 先把

陣列抄所有值都賦

襲值查詢可以通過bai迴圈比對

for (i=0;i++;i然後通過判du斷flag來看看是否找zhi到資料

將數dao組元素置空來表示刪除

c語言陣列刪除?

7樓:聽不清啊

#include

int main()

{ int i,i1,j,k,n,a[101];

scanf("%d",&n);

for(i=1; i<=n; i++)

{ a[i]=i;

printf("%3d",a[i]);

printf("\n");

i=1,k=n;

for(i1=0; i1{ a[i++]=a[k--]=0;

for(j=1; j<=n; j++)

printf("%3d",a[j]);

printf("\n");

return 0;

c語言中陣列下標最大為多少C語言中陣列下標最大為多少

陣列下標最大為陣列個數減一,例如定義 int a 5 則陣列a的下標最大為4 因為在c語言中陣列的下標是從0開始的,這樣從0到陣列個數減一,共陣列的總個數。例如 include int main 執行結果 1 2 3 4 5 1 2 3 4 5 額 沒有那麼多的吧記憶體吧 比如說int a 5 他的...

c語言中陣列指標a有啥區別,C語言中陣列指標 a 與a 有啥區別?

第一個a中有2個符號,所以要看優先順序,看限於誰結合。已知比 優先所以版第一個a先與 權結合,所以a是一個陣列,陣列中的元素都是指標a就單單表示陣列。例子 char a a是陣列,元素都是char 即指標 char a a是陣列,元素都是char 即字元 a 這個為指標陣列,int a 5 就定義了...

c語言中的陣列的意義是什麼,c語言中陣列有什麼作用

你想想,當我們想要把一類大量的資料儲存下來的時候 比如說小於1000的偶數 難道你要一個個的定義變數,然後再給他們一個個賦值?這樣重複了大量的操作。而陣列的出現解決了這個問題,你可以只用寫一句語句就可以獲得大量的同類資料儲存單元,如定義int a 1000 就得到了1000個整形資料,再配合迴圈,就...