c-有没有一种方法可以使用指针表示法来获得三维向量的大小



我需要做这样的事情:

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

但不幸的是,在c89(我必须使用的标准(中,这种表示法是被禁止的,除了使用指针表示法之外,还有什么方法可以做同样的事情吗?

这是我得到的错误

它在c99中工作良好,但在c89 中不工作

您可以编写以下内容:

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

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