这是我所拥有的:
int t[MX];
现在,我想重写该代码,以便有效地将单个元素添加到该数组的开头,而不必在其余代码中将所有索引转换为 1。该问题的解决方案可能是这样的:
int _t[MX+1];
int * const t = _t+1;
这种方法的问题是现在这样的东西不再起作用了:
memset(t, 0, sizeof t);
问题是sizeof t
返回 4,而不是我想要的 MX*4。
一种可能的解决方案可能是:
struct
{
int a;
int b[MX];
} _t;
int (&t)[MX] = _t.b;
但我觉得它相当不雅和不令人满意。所以,我的问题是:有更好的方法吗?