我几乎是C语言的初学者,我想分配一个二维数组,对其进行更改,重新分配和打印。
代码的两个答案都很有用,现在的代码是:
main()
{
int i, j, L , **lp ;
scanf("%i" , &L );
lp = calloc(L , sizeof(*lp) );
for(i=0 ; i<L ; i++)
lp[i] = calloc( L , sizeof( *(lp[i])) );
for(i=0 ; i<L ; i++)
{
for(j=0 ; j<L ; j++ )
{
lp[i][j]=0;
printf("%i\t" , lp[i][j] );
}
printf("\n");
}
free( lp );
return(0);
}
最佳答案
很多事情是错误的。
1. for循环
{ for(j=0 , j<0 , j++ )
for (initialization_expression;loop_condition;increment_expression){..}
如果缺少任何一个,请将其留空,但是您确实需要分号。
即使这样,
j=0;j<0
作为条件也没有意义。2.拼写错误
您在第二个for循环中将lp拼错为pl。
3.主要
您没有为main指定返回类型。这没有被报道,但是它是旧式的,不应该再使用了。
4.动态分配
这不是动态分配二维数组的方法。
关于c - 多维数组分配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13304278/