小编Sam*_*Sam的帖子

C - 为什么我被允许这样做?

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 pointers

3
推荐指数
1
解决办法
125
查看次数

Null终止int数组

如果我想在C++中动态创建一个int数组,然后在以后删除它,我是否需要null终止int数组?如果是这样,我该怎么办?如果没有,计算机如何知道要释放多少内存?

int *array = new int[x];
..do some stuff..
delete array;
Run Code Online (Sandbox Code Playgroud)

我知道对于一个char数组,它会删除一个空字符('\ 0'),如果你的字符串中没有终止空字符,你可能会得到内存冲突错误,但这是如何应用于整数数组的(和其他数组一样,结构数组)?

c++ memory arrays

3
推荐指数
1
解决办法
1899
查看次数

检测字符串是否仅由空格组成?

检查C中的字符串是否仅由空格组成的最有效/最安全的方法是什么?我是否需要自己编写一个函数来检查,或者我可以使用string.h中的函数吗?

c string

2
推荐指数
2
解决办法
257
查看次数

3D矢量构造函数C++

对于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)

但它不会编译.有任何想法吗?

c++ vector

0
推荐指数
1
解决办法
3635
查看次数

标签 统计

c ×2

c++ ×2

arrays ×1

memory ×1

pointers ×1

string ×1

vector ×1