⑴ c語言中動態數組的定義怎麼做啊!
C還是C++,如果是C,你只能用malloc函數分配,比如
int
nLen;
double
*
pArray;//動態書組
scanf("%d",&nLen);
pArray=malloc(nLen*
sizeof(double));
....
free(pArray);
如果是C++,可以用MFC的CArray,或者STL的vector
如果要增長,可用realloc
⑵ c語言 動態數組
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num,*p=0,i;
printf("輸入數組元素個數:");
/*輸入數組元素個數,保存到變數num中*/
scanf("%d",&num);
/*動態分配數組存儲空間*/
p = (int *)malloc(sizeof(int)*num);
/*輸入數據*/
for(i=0;i<num;i++)
{
scanf("%d",&p[i]);
}
/*輸出數據*/
for(i=0;i<num;i++)
{
printf("%d ",p[i]);
}
/*刪除動態創建的數組*/
free(p);
return 0;
}
⑶ C語言中定義動態數組的方法
long *buffer; // 定義一個動態數組
...malloc.... // 動態分配 1000 單元
...realloc.... // 再添加 分配 1000 單元
free( buffer ); // 取消 單元
=============================================
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
void main( void )
{
long *buffer;
size_t size;
if( (buffer = (long *)malloc( 1000 * sizeof( long ) )) == NULL )
exit( 1 );
size = _msize( buffer );
printf( "Size of block after malloc of 1000 longs: %u\n", size );
/* Reallocate and show new size: */
if( (buffer = realloc( buffer, size + (1000 * sizeof( long )) ))
== NULL )
exit( 1 );
size = _msize( buffer );
printf( "Size of block after realloc of 1000 more longs: %u\n",
size );
free( buffer );
exit( 0 );
}
⑷ 如何用C語言實現動態的字元串數組
分成取數字與取非數字2個函數較簡單。get_v()取數字, get_o()取非數字。
#include <stdio.h>
char *get_v(char *a, char *b){
int i=0;
while( a[i]>='0' && a[i]<='9') {b[i]=a[i];i++;};
b[i]='\0';
strcpy(a,a+i);
return b;
}
char *get_o(char *a, char *b){
int i=0;
while( a[i]<'0' || a[i]>'9') {b[i]=a[i];i++;};
b[i]='\0';
strcpy(a,a+i);
return b;
}
int main()
{
char s[]="1234+4*5";
char b[10];
while(strlen(s)>=1){
get_v(s, b);
printf("%s\n",b);
if (strlen(s)<=0)break;
get_o(s, b);
printf("%s\n",b);
};
return 0;
}
⑸ 關於C語言動態數組
還是哪句話 那個問題貼裡面我說的很清楚了
如果說你要計算輸入數字的個數,用一個計數器就行了
#include<stdio.h>
int main()
{
int a = -1;
int n = 0;
printf("請輸入數字,以0結束輸入:");
scanf("%d", &a);
while(a != 0)
{
n++;
scanf("%d", &a);
fflush(stdin);
}
printf("一共輸入了%d個數\n", n);
return 0;
}
////////////////////動態分配數組空間///////////////////////////////
#include<stdio.h>
int main()
{
int n;//假設這個為你輸入的長度
scanf("%d", &n); //輸入--------------------》看這里
int *a = new int[n]; //分配一個長度為N的內存空間,吧首地址給a。
//這里的a就(可以看做)是你需要的數組了
return 0;
}
⑹ C語言數組動態賦值
輸入整型數組,這樣循環是可以的。
scanf輸入格式沒有指定,默認是空格分割。
也就是說,你要麼輸入一個數就回車,再輸第二個。
要麼連續輸入多個數,用空格分割。
看看,你輸入格式對不對。
⑺ C語言如何給動態分配的數組賦值
1、當成普通數組使用,用for循環即可賦值。
2、常式:
#include<stdio.h>
#include<stdlib.h>
intmain(void)
{
int*a=NULL;
inti;
a=malloc(sizeof(int)*10);/*動態創建一個有10個int元素的數組*/
if(a==NULL){/*a==NULL表示空間分配失敗*/
fprintf(stderr,"MEMORYERROR");
return-1;
}
for(i=0;i<10;i++){
a[i]=i;/*對數組進行賦值操作*/
}
free(a);/*動態分配的空間需要用free()函數釋放*/
return0;
}
⑻ C語言如何定義動態數組
intmain(void)
{
int*number,n,m,i;
printf("thetotalnumbersis:");
scanf("%d",&n);
printf("backm:");
scanf("%d",&m);
number=(int*)malloc(n*sizeof(int));
printf("input%dintegers:",n);
for(i=0;i<n;i++)
{
scanf("%d",&number[i]);
}
(8)c語言動態數組擴展閱讀
動態數組,是相對於靜態數組而言。靜態數組的長度是預先定義好的,在整個程序中,一旦給定大小後就無法改變。而動態數組則不然,它可以隨程序需要而重新指定大小。
動態數組的內存空間是從堆(heap)上分配(即動態分配)的。是通過執行代碼而為其分配存儲空間。當程序執行到這些語句時,才為其分配。程序員自己負責釋放內存。使用動態數組的優點是可以根據用戶需要,有效利用存儲空間。
⑼ c語言編程(動態數組)
double *p;
if(!(p=(double *)calloc(N,sizeof(double)))) exit(1);
若是整型:
int *p;
if(!(p=(int *)calloc(N,sizeof(int)))) exit(1);