c文件创建数组|C语言 如何动态创建二维数组

⑴ c语言结构数组,如何创建外部数组和静态数组

外部变量就是引用外部文件的变量(非静态)

静态变量与全局变量相似,区别是静态变量只能在定义的函数内被调用。

静态变量与局部变量区别:静态变量不会自动释放,函数调用结束后,值依然保留。静态变量定义时赋初值,只有一次,多次调用函数,不会反复赋初值。如果没有初值,静态变量也会自动赋初值。

关于数组定义在栈中维度大小受限,想要定义在堆中,可以用malloc申请。

详细看我写的案例备注吧。

//externFile.c文件#include<stdio.h>structbook2{intid;};structbook3{intid;};structbook2bk2;staticstructbook3bk3;//b3是静态全局变量,无法通过extern被外部调用

⑵ C语言如何创建数组

动态数组:void creat(linklist &L){int x;L=new Lnode;linklist p,u;p=L;cout<<"请输入一些有序的整数,以负数结束:"<<endl;cout<<"请输入一个整数:"<<endl;cin>>x;while(x>0){u=new Lnode;u->data=x;p->next=u;p=p->next;cin>>x;}p->next=NULL;} 静态数组:int iArray[10]={1,1,2,3,5,8,13,21,34,55); //初始化void main(){//…}

⑶ C语言 如何动态创建二维数组

这样的方法可行来,不过要源是题目要求输入m和n,然后再定义二维数组a[m][n],那就行不通了。你可以这样做:(以int型为例)int **a;int m,n,i;scanf("%d%d",&m,&n);a=(int**)malloc(m*sizeof(int*)); /*malloc函数在stdlib.h里面,用的时候加入这个头文件*/for(i=0;i<m;i++)a[i]=(int*)malloc(n*sizeof(int));/*这样以后你就可以把a当作二维数组a[m][n]来用了。。

⑷ 关于C语言数组的创建

两种方法:转化为一维数组申请先申请全部行首指针,再按行逐行申请1、方法一:

a=(int*)malloc(sizeof(int),(unsigned)m*n);使用的时候就和一般的二维数组一样。举个例子给你:#include"stdlib.h"#include"stdio.h"#include<malloc.h>intmain(){inti,j;intn;//这个就是需要指定的行数int(*p)[10];scanf("%d",&n);//取得行数//动态生成二维数组,指定列数为10,如果想改,自己该里面的参数,如果想定义n行2列就为:p=(int(*)[2])malloc(n*2*sizeof(int));p=(int(*)[10])malloc(n*10*sizeof(int));//动态申请n行10列的二维数组for(i=0;i<n;i++)for(j=0;j<10;j++)p[i][j]=i*j;for(i=0;i<n;i++){for(j=0;j<10;j++)printf("%d,",p[i][j]);printf("");}free(p);return0;}

2、方法二:

#include<stdio.h>#include<malloc.h>main(){inti=0;intj=0;intline=0;introw=0;int**p=NULL;printf("inputthelineofthearray:");scanf("%d",&line);printf("inputtherowofthearray:");scanf("%d",&row);p=(int**)malloc(sizeof(int*)*line);if(NULL==p){return;}for(i=0;i<line;i++){*(p+i)=(int*)malloc(sizeof(int)*row);if(NULL==*(p+i)){return;}}/*inputdata*/for(i=0;i<line;i++){for(j=0;j<row;j++){p[i][j]=i+1;}}/*outputdata*/for(i=0;i<line;i++){for(j=0;j<row;j++){printf("%d",p[i][j]);}}/*freeeverylinepoint*/for(i=0;i<line;i++){free(*(p+i));p[i]=NULL;}free(p);p=NULL;}

⑸ C语言创建数组的3种方法是什么,求例子

第一个,int a[10]; 这里的10就是常量。第二个 用变量int n=10;int a[n];很多编译器会不支持。第三个int *a;a=(int *)malloc(sizeof(int)*10);使用后,要对a做free(a);

⑹ C语言怎样循环创建数组

#include <stdio.h>#include<stdlib.h>struct s{int a[2];struct s *next;}; //定义了一个结构体main(){ int i=0; struct s *head,*p; head=p=(struct s *)malloc(sizeof(struct s));//开辟一个新单元 for(i=0;i<2;i++) //定i<2,(如果你想要100个数组,i 就等于100)类似于你定义了2个一维数组 { scanf("%d",p->a); p=p->next=(struct s *)malloc(sizeof(struct s)); } p=head;//使p指针指向第一个数组 printf("%d\n",p->a[0]);//如果你想看第二个数组里的a[0]的数值改成(p->a[0])+1。}

⑺ c 中如何用getarray创建一个数组

函数名称: strncpy函数原型: char *strncpy(char *dest, const char *src,int c www.hbbz08.com ount)函数功能: 将字符串src中的count个字符拷贝到字符串dest中去函数返回: 指向dest的指针参数说明: dest-目的字符串,src-源字符串,count-拷贝的字符个数所属文件: #include #include int main(){char string[10];char *str1="abcdefghi";strncpy(string,str1+1,3);string[3]=’\0’;printf("%s",string);return 0;}

⑻ c语言怎么创建二维数组

int a[m][n];//就表示一个m行n列的整型二维数组在c语言中数组的下标是从0开始的所以,数组a的元素个数可以表示为:a[0][0]-a[m-1][n-1]例如:#include<stdio.h>intmain(){inta[3][2],i,j;//定义一个3行2列的整型二维数组afor(i=0;i<3;i++)//依次给二维数组赋值for(j=0;j<2;j++)scanf(“%d”,&a[i][j]);printf(“”);for(i=0;i<3;i++){//输出二维数组for(j=0;j<2;j++)printf(“%d”,a[i][j]);printf(“”);}return0;}/*运行结果:123445123445*/

⑼ c语言或c++如何自由创建数组

%其实C++是不容许用变量来定义数组的,例如:int m;cin>>m; int a[m];这样是不行的。但是我们可以换一种思路。你看看这样,我们可以先申请的变量a,再用new运算符来建立临时数组。这样问题就解决了。用这个方法来解决上面你提到的两个问题(假设你向a中输入5),看代码:第一个问题, int a; cin>>a; int *p=new int[a]; 第二个问题,int a;cin>>a;int *p=new int[a*(a-1)]; 这样就可通过指针p来访问数组中的值了。%

⑽ C语言创建一个数组

//用函数malloc和realloc分配动态存储空间;//基本用法为:#include<stdio.h>#include<stdlib.h>void main(){ int *p,n,m; scanf("%d",&n); p=(int *)malloc(n*sizeof(int)); //开辟的空间由输入的n决定; //则p即为一长度为n的整型数组; scanf("%d",&m); p=(int *)realloc(p,m*sizeof(int));//若p的空间不够可重新开辟更大的空间,由输入的m决定; free(p);//记得结束时释放p的空间;}


赞 (0)