有没有办法使用指针表示法获取三维向量的大小?

Is there a way to get the size of a three-dimensional vector using pointer notation?

我需要做这样的事情:

sizeof(int[width][height][8])

但不幸的是,在 c89(我必须使用的标准)中,这种表示法是被禁止的,有没有办法做同样的事情,但使用指针表示法?

Here's the error i get

它在 c99 中工作正常但在 c89 中不工作

你可以这样写:

(sizeof(int) * (width) * (height) * 8)

确保将 sizeof(int) 放在第一位以强制将 widthheight 转换为 size_t 并避免 width * height * 8 上潜在的整数溢出如果 widthheightint 类型。