首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

很简单的一个C语言有关问题,

2014-01-01 
很简单的一个C语言问题,救命啊!!!void main(){int N,i,jscanf(%d,&N)int r_color[N]{0} 为什么这样

很简单的一个C语言问题,救命啊!!!
void main()
{  int N,i,j;
   scanf("%d",&N);
   int r_color[N]={0};
 
为什么这样会报错啊,我想先输入N,再定义一个数组并把N赋为数组的长度


[解决办法]
我的理解是你在定义数组的时候 必须给数组定下分配多少空间 不能是一个变化的值。
要么就动态分配内存 malloc()
[解决办法]
我的理解是你在定义数组的时候 必须给数组定下分配多少空间 不能是一个变化的值。
要么就动态分配内存 malloc()
[解决办法]
引用:
int r_color[N]={0};
写成int r_color[N]即可。

当你将N作为参数的时候,是无法进行初始化的,尤其是用在函数里。
[解决办法]

int N, *color;
if (1 == scanf("%d", &N) && N > 0)
{
   color = (int*)calloc(N,sizeof(int));
}

[解决办法]
其实你想用变长数组吗
[解决办法]
可以定义指针数组来分配二维数组:
int a;
int (*)p[2];
a=p[2][N];
[解决办法]
说错了 ,是数组指针来分配二维数组
[解决办法]
int a;
int(*p)[2];
a=p[0][N];
[解决办法]
先弄懂:编译器,运行期。

热点排行