数组问题求解

dushuchen 2012-02-20 11:12:00
static void draw_density ( void )
{
int i, j, k, m, n;
float x, y, z, h, c;
float vertices[8][3];
int faces[4][4];

h = 1.0f/N;

for ( i=0 ; i<=N ; i++ ) {
x = (i-0.5f)*h;
for ( j=0 ; j<=N ; j++ ) {
y = (j-0.5f)*h;
for ( k=0 ; k<=N ; k++ ) {
z = (k-0.5f)*h;
c = (int) ((1.0 - dens[IX(i, j, k)]) * 255);
if (c < 0)
c = 0;
vertices[8][3] = {
{(float)x - 0.5f, (float)y - 0.5f, (float)z + 0.5f},
{(float)x - 0.5f, (float)y + 0.5f, (float)z + 0.5f},
{(float)x + 0.5f, (float)y - 0.5f, (float)z + 0.5f},
{(float)x + 0.5f, (float)y + 0.5f, (float)z + 0.5f},
{(float)x - 0.5f, (float)y - 0.5f, (float)z - 0.5f},
{(float)x - 0.5f, (float)y + 0.5f, (float)z - 0.5f},
{(float)x + 0.5f, (float)y - 0.5f, (float)z - 0.5f},
{(float)x + 0.5f, (float)y + 0.5f, (float)z - 0.5f}
};

faces[4][4] = { { 1, 2, 6, 5 }, { 2, 3, 7, 6 },
{ 4, 5, 6, 7 }, { 0, 4, 7, 3 }, { 0, 1, 5, 4 },
{ 0, 3, 2, 1 } };

glBegin(GL_QUADS);
for (m = 0; m < 6; m++) {
glColor3f(c, c, c);
for (n = 0; n < 4; n++) {
glVertex3fv(vertices[faces[m][n]]);
}
}
glEnd ();
}
}
}
}

vs2010在红色的位置报错,提示应输入表达式

应该是数组赋值方式错了

请大家指点
...全文
89 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
pathuang68 2012-02-21
  • 打赏
  • 举报
回复

// 如果在前面已经有了声明(定义):
int faces[4][4];
// 那么下面的语句中的faces[i][j]就不再是一个数组了,而是数组中的一个元素了
faces[4][4] = { { 1, 2, 6, 5 }, { 2, 3, 7, 6 },
{ 4, 5, 6, 7 }, { 0, 4, 7, 3 }, { 0, 1, 5, 4 },
{ 0, 3, 2, 1 } };
// 所以,除非你在声明数组的同时,可以像上面那样赋值,否则,就必须用两层for循环或者与此类似的方式来
//进行赋值了。
赵4老师 2012-02-21
  • 打赏
  • 举报
回复
“变量初始化”和“变量赋值”不是一回事!
“变量初始化”发生在编译时。
“变量赋值”发生在运行时。
Furney 2012-02-21
  • 打赏
  • 举报
回复
数组在定义时初始化,否则只能单个赋值。

float vertices[8][3] = {
{(float)x - 0.5f, (float)y - 0.5f, (float)z + 0.5f},
{(float)x - 0.5f, (float)y + 0.5f, (float)z + 0.5f},
{(float)x + 0.5f, (float)y - 0.5f, (float)z + 0.5f},
{(float)x + 0.5f, (float)y + 0.5f, (float)z + 0.5f},
{(float)x - 0.5f, (float)y - 0.5f, (float)z - 0.5f},
{(float)x - 0.5f, (float)y + 0.5f, (float)z - 0.5f},
{(float)x + 0.5f, (float)y - 0.5f, (float)z - 0.5f},
{(float)x + 0.5f, (float)y + 0.5f, (float)z - 0.5f}
};
矫情狗_____ 2012-02-20
  • 打赏
  • 举报
回复
哇,第一次见这样的赋值,LZ英明...
赋值要在定义的时候就赋值!
例如:

int faces[4][4] = { { 1, 2, 6, 5 }, { 2, 3, 7, 6 },{ 4, 5, 6, 7 },
{ 0, 4, 7, 3 }, { 0, 1, 5, 4 },{ 0, 3, 2, 1 } };
pengzhixi 2012-02-20
  • 打赏
  • 举报
回复
数组是不能这样赋值的。只能在声明的时候这样初始化。

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧