c语言 动态数组
发布网友
发布时间:2022-04-20 08:23
我来回答
共5个回答
热心网友
时间:2023-07-28 11:30
#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;
}
热心网友
时间:2023-07-28 11:30
C语言没有动态数组的概念,所谓动态数组,就是在使用过程中,大小可以任意改变的数组,但是C语言中的数组,只要一旦声明就无法再更改大小,所以一般都会把数组大小设置的比较大一点,但是这样会造成资源浪费,变量又不能作为数组的下标,为了应对这种问题,需要指针的帮忙.指针可以用变量作为参数,申请一段固定大小的内存空间, 格式为: int *p; p=(int *)malloc(变量*sizeof(int));
这时 p指针的作用就相当于 数组名(其实数组名也就是一个指针).希望可以帮到你
热心网友
时间:2023-07-28 11:31
/*输入数组元素个数,保存到变量num中*/
scanf("%d", &num);
/*动态分配数组存储空间*/
p = (int *)malloc(num * sizeof(int));
/*输入数据*/
printf("请输入%d个整数:", num);
for(i = 0; i < num; i++)
{
printf("%d个:", i + 1);
scanf("%d", p + i);
}
/*输出数据*/
printf("输入的数组是:");
for(i = 0; i < num; i++)
printf("%3d", *(p + i));
/*删除动态创建的数组*/
free(p);
热心网友
时间:2023-07-28 11:31
加上头文件iostream.h后用下面的。
cin>>num;
int *pp = new int[num];
for(int i=0; i < num; i++)
{
cout<<"input number,第"<<i<<"个数";
cin>>pp[i];
}
for(int i=0; i < num; i++)
{
cout<<"第"<<i<<"个数"<<"为:"<<pp[i]<<endl;
}
delete pp;
热心网友
时间:2023-07-28 11:32
建议你问你们家计算机老师吧。
如何使用C语言动态创建一个二维数组?
1、在上面的 3*5 的数组中,x[0],x[1],x[2] 分别指向第 0 行,第 1 行和第 2 行的第一个元素。如果 x 是一个整形数组,那么 x[0] x[1] x[2] 就是指向 int 类型的指针,而 x 则是指向指针的指针。2、接下来,接收用户输入的行列值。3、为了给这个 row 行、col 列的数组分...
c语言中数组的定义和使用是什么?
动态数组是指在声明时没有确定数组大小的数组,即忽略方括号中的下标。使用时,可随时用ReDim语句(C语言中用malloc语句)重新指出数组的大小。动态数组,是相对于静态数组而言。静态数组的长度是预先定义好的,在整个程序中,一旦给定大小后就无法改变。而动态数组则不然,它可以随程序需要而重新指定大小。
C语言中结构体数组的大小如何动态分配?
\x0d\x0a基本类型数组动态分配大小:\x0d\x0aint*a=(int*)malloc(sizeof(int)*10);//动态分配10个大小的int类型的内存空间\x0d\x0a结构体类型数组分配大小:\x0d\x0astructDIYDEFINE\x0d\x0a{\x0d\x0ainta;\x0d\x0acharch;\x0d\x0alonglnum;\x0d\x0a};\x0d\x0a...
用C语言编写一个程序,从文件data. txt读入整数n后,从内存中分配存储 n...
```c include <stdio.h> include <stdlib.h> // 包含动态分配内存的函数 int main() { int n;double *arr; // 定义一个指向双精度动态数组的指针 double sum = 0, avg;// 打开文件和读入n的值 FILE *fp = fopen("data.txt", "r");fscanf(fp, "%d", &n);// 动态分配内存空间...
在c语言中如何实现数组的动态输入?
1;a[0]=0;while(1){ c=getchar();if(c==10)break;if(a[0]==0)a[0]=c,a[1]=0;else { aSave=realloc(a,sizeof(char)*len);if(!aSave)return 1;a=aSave;a[len-2]=c,a[len-1]=0;} len++;} printf("输入的字符串数组是:\n%s\n",a);free(a);return 0;} ...
C语言中怎样定义动态一维数组
在C语言中,数组的定义都是固定长度的,长度不允许变化。可以通过链表的方式来达到定义”动态数组“的等价功能,举例如下:链表节点定义如下:struct node{ int data; // 数据域 struct node *next; // 指针域};存放数据时可以对节点中的node赋值即可,如:struct node *p; // 定义一个链...
C语言如何动态分配二维数组??
动态分配二维数组:void main(int argc, char * argv[]){ int NC=100, NR=200;int i,j;char **a; // a[NR][NC] -- *a[NR] -- a[j][i]a = (char **) malloc(sizeof(char *) * NR);for (j=0;j<NR;j++){ a[j] = (char *) malloc(sizeof(char) * NC);} /...
C语言创建动态数组,计算前缀和数组。 b是数组a的前缀和的数组定义:b[i...
关于在 C 语言中创建动态数组的问题,可以使用 C 语言提供的库函数:malloc( ) 来创建动态数组。即可以使用如下代码进行实现:include <stdlib.h> /* 动态分配内存的库函数 malloc( )、以及后面用到的 free( ) 释放内存库函数在此头文件中有函数原型定义,故必须包含该头文件 */ include <stdio.h...
如何用C语言实现动态的字符串数组
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;} in...
C语言中定义数组时可以不定义长度吗,这样:uint8 array[]。看到一个...
C语言中可以定义个数不确定的动态数组,但不是用uint8 array[];这样来定义的,这样会报错。定义个数不确定的动态数组必须先声明一个指针,然后用malloc为这个指针分配一段连续的空间,然后退出程序的时候要记得使用free释放这些变量空间,否则会造成内存泄露。比如你要定义一个字符型的动态数组,可以先声明...