int b[2], *ptr;
b[0] = 5;
b[1] = 7;
ptr = &b[0];
*ptr++ = 66;
printf("%d", *ptr);
Run Code Online (Sandbox Code Playgroud)
为什么我被允许做*ptr++ = 66行,即使这= 66一点似乎什么都不做?当我打印*ptr它的时候7.有人可以解释原因吗?编译器是否应该抱怨= 66没有效果?
*ptr++ = 66基本上不等同于7 = 66?
如果我想在C++中动态创建一个int数组,然后在以后删除它,我是否需要null终止int数组?如果是这样,我该怎么办?如果没有,计算机如何知道要释放多少内存?
int *array = new int[x];
..do some stuff..
delete array;
Run Code Online (Sandbox Code Playgroud)
我知道对于一个char数组,它会删除一个空字符('\ 0'),如果你的字符串中没有终止空字符,你可能会得到内存冲突错误,但这是如何应用于整数数组的(和其他数组一样,结构数组)?
检查C中的字符串是否仅由空格组成的最有效/最安全的方法是什么?我是否需要自己编写一个函数来检查,或者我可以使用string.h中的函数吗?
对于2d矢量,我知道我可以去:
vector<vector<T>> vec;
vec = vector<vector<T>> (boardSize, vector<T>(boardSize));
Run Code Online (Sandbox Code Playgroud)
但是我如何为3D矢量做到这一点?
我试过了
vector<vector<vector<T>>> vec;
vec = vector<vector<vector<T>>> (boardSize, boardSize, vector<T>(boardSize));
Run Code Online (Sandbox Code Playgroud)
但它不会编译.有任何想法吗?