刚开始学习C语言。 我有一个指针数组int * parr,我需要用随机数填充它,然后用它做一些其他的事情。 但我甚至不明白如何用随机数填充它。我想这样的事情,但它挂起程序:C数组和指针
for(i=0 ; i<R ; i++)
{
for(j=0 ; j<C; j++)
{
*(parr+i*C+j)=rand() % 10;
printf("%d",*(parr+i*C+j));
}
printf("\n");
}
刚开始学习C语言。 我有一个指针数组int * parr,我需要用随机数填充它,然后用它做一些其他的事情。 但我甚至不明白如何用随机数填充它。我想这样的事情,但它挂起程序:C数组和指针
for(i=0 ; i<R ; i++)
{
for(j=0 ; j<C; j++)
{
*(parr+i*C+j)=rand() % 10;
printf("%d",*(parr+i*C+j));
}
printf("\n");
}
int *parr;
只定义一个指针整数,但没有与之关联的存储。你既可以
int parr[sizeofarray];
或
int *parr = calloc (sizeofarray, sizeof(int));
获得存储适量。
根据您的示例sizeofarray应至少为R * C
。
它应该是:R * C * sizeof(int) –
@Roee否,因为我使用sizeofarray作为int数组的大小参数,或者使用calloc作为nelem参数。 calloc!= malloc – fvu
你用一维数组做过吗? – Beta
这个问题的关键在于如何定义和初始化parr,所以请添加那一点代码。 – fvu
您需要发布整个代码,声明并分配'parr'。 – sjngm