很简单的一个C语言有关问题,
很简单的一个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()
[解决办法]当你将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];
[解决办法]先弄懂:编译器,运行期。