指针数组的指针数组

时间:2012-01-18 07:45:45

标签: c arrays pointers

我搜索了我的问题,但没有找到它。

我有一个指针数组的声明

int *Blocks[] = {Block1,Block2,Block3,Block4};

Blocks是长度为50的数组。

现在我有一个for循环,我想逐步初始化字段

for(int i=0;i<50;++i)
{
*(Blocks[section])+i = 1;
}

以后应该是一个变量。 是正确的还是正确的表达式来获取所选部分的数组字段?

感谢每一个答案

3 个答案:

答案 0 :(得分:4)

不,那条线不太对劲。以下是(注意括号的位置):

*(Blocks[section]+i) = 1;

或等同但更简洁:

Blocks[section][i] = 1;

答案 1 :(得分:2)

你写的内容几乎可行,你可以这样做:

*(Blocks[section] + i) = 1;

但最好的解决方案是使用C的句法糖并写:

Blocks[section][i] = 1;

答案 2 :(得分:-1)

您可以将init设置为

*(Blocks[section]+i) = 1;

也许你应该在init init

之前使用malloc足够的内存