kbi*_*irk 2 c++ memory arrays fixed
出于某种原因,这给我带来了比我想象的更多麻烦......
int *myArray[3];
myArray = new int[mySize];
Run Code Online (Sandbox Code Playgroud)
不起作用......
我之前以类似的方式使用过typedef并且它工作得很好,但这次我不想创建typedef
有人可能会这样做:
::std::vector<int[3]> myArray;
Run Code Online (Sandbox Code Playgroud)
因为vector动态大小的数组非常好用.不幸的是,虽然该声明有效,但结果vector却无法使用.
如果你有::std::array(一个C++ 11特性)并且它实际上可以工作,这将同样有效:
::std::vector< ::std::array<int, 3> > myArray;
Run Code Online (Sandbox Code Playgroud)
如果你能做到这一点,我强烈推荐它.vector处理比你必须分配的数组更好,更安全new.
否则,试试这个:
typedef int inner_array_t[3];
inner_array_t *myArray = new inner_array_t[mySize];
Run Code Online (Sandbox Code Playgroud)
因为你不想出于某些奇怪的原因使用typedef,你可以像这样解开它:
int (*myArray)[3] = new int[mySize][3];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3408 次 |
| 最近记录: |