请有空的进来帮我指点一下,变长数组,,,
#include <stdio.h>
#include <stdlib.h>
void show(int m,int n,int arr[][m],int copy2[][m]); //变长数组声明
void copy(int m,int n,int arr[][m],int copy2[][m]); //变长数组声明
/****************主程序入口*****************/
int main(void)
{
int n,m,i,j; //声明变长数组下标
int array[n][m],copy1[n][m]; //两个二维数组
printf( "please input the tow number: ");
while(scanf( "%d%d ",&n,&m)!=2)
{
exit(1); //输入出错,终止程序退出
}
for(i=0;i <n;i++)
{
for(j=0;j <m;j++)
{
array[i][j]=j; //为变长数组赋值
}
}
copy(m,n,array,copy1); //复制变长二维数组
show(m,n,array,copy1); //显示两个数组内容
sytem( "pause ");
return 0;
}
/**************变长数组复制**********************/
void copy(int m,int n,int arr[][m],int copy2[][m])
{
int i,j;
for(i=0;i <n,i++)
{
for(j=0;j <m;j++)
{
copy1[i][j]=array[i][j];
}
}
}
/*************显示两个变长数组的内容*************/
void show(int m,int n,int arr[][m],int copy2[][m])
{
int i,j;
for(i=0;i <n;i++)
{
for(j=0;j <m;j++)
{
printf( "%-4d ",array[i][j]);
}
}
putchar( '\n ');
for(i=0;i <n;i++)
{
for(j=0;j <m;j++)
{
printf( "%-4d ",copy1[i][j]);
}
}
}
我想问一下上面那两个函数的声明的参数部份,有问题吗,
我查了一下书本,书上的变长数组也是这么写着的,我用的是DEV-C++
是不是编译器不支持这种标准,,,请分析一下,谢谢
[解决办法]
数组声明的时候必须指定其固定长度,而不是一个变量值。
[解决办法]
我想问一下上面那两个函数的声明的参数部份,有问题吗,
我查了一下书本,书上的变长数组也是这么写着的,我用的是DEV-C++
是不是编译器不支持这种标准,,,请分析一下,谢谢
==============================================
哪本书这么写的?难道变长数组就可以用变量确定长度吗?
[解决办法]
数组声明的时候必须指定其固定长度,而不是一个变量值
----------
c99标准支持变长数组
[解决办法]
void show(int m,int n,int arr[][m],int copy2[][m]); //变长数组声明
void copy(int m,int n,int arr[][m],int copy2[][m]); //变长数组声明
哪有这样声明函数的,第三个参数用到第一个参数
[解决办法]
#include <iostream>
using namespace std;
int main()
{
int m;
cin> > m;
int a[m];//变长数组
cin.get();
return 0;
}