【发布时间】:2012-05-30 22:49:50
【问题描述】:
使用 2D 整数数组,一切都很好:
int **p = new int*[8];
for (int i = 0; i < 8; i++)
p[i] = new int[8];
memset(p, 0, 64 * sizeof(int))
但是对于二维字符数组,我得到一个运行时错误
char **p = new char*[8];
for (int i = 0; i < 8; i++)
p[i] = new char[8];
memset(p, 0, 64 * sizeof(char));
我的代码有什么问题?
【问题讨论】:
-
你需要为每个 p[i] 调用 memset。您无法保证它们在内存中是连续的,并且您不会在不应该写的地方写。