我搜索了我的问题,但没有找到它。
我有一个指针数组的声明
int *Blocks[] = {Block1,Block2,Block3,Block4};
Blocks是长度为50的数组。
现在我有一个for循环,我想逐步初始化字段
for(int i=0;i<50;++i)
{
*(Blocks[section])+i = 1;
}
以后应该是一个变量。 是正确的还是正确的表达式来获取所选部分的数组字段?
感谢每一个答案
答案 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足够的内存