如何定义一个可变的二维数组,并把这个数组作为一个function的参数
来源:百度知道 编辑:UC知道 时间:2024/06/23 04:46:45
谢谢
例如,怎样定义一个n行2列的数组呢,我在赋值的时候并没有办法知道n是多少,只知道2列
例如,怎样定义一个n行2列的数组呢,我在赋值的时候并没有办法知道n是多少,只知道2列
#include "stdlib.h"
#include "stdio.h"
#include <malloc.h>
int main()
{
int i,j;
int (*p)[10];
//动态生成二维数组格式就是相当与p[10][10],如果想改,自己该里面
的参数,如果想定义n行2列就为:
//p=(int (*)[2])malloc(n*2*sizeof(int));
p=(int (*)[10])malloc(10*10*sizeof(int));
for(i=0;i<10;i++)
for(j=0;j<10;j++)
p[i][j]=i*j;
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
printf("%d,",p[i][j]);
printf("\n");
}
free(p);
return 0;
}
c语言里面,无法定义元素个数可变的数组
c++里面,也只有第一维是可变的,其他维的元素个数无法改变
比如 int n=10,*p=[n][4];
如果你没办法指定n,那么可以用动态内存的办法,它可以当成数组来使用的啊
如:
int *p=(int *)malloc(sizeof(int)*1024);
然后p可以当成数组来使用,如p[0]=0;
也可以int **pp=&p,pp就可以当成二维数组使用了,如pp[0][0]=0;
定义动态数组。
<mallo