我仍然是 C 的新手,我对 memset 函数有疑问。
我将一个 char * 传递给一个函数,并在这个函数内部创建一个数组,然后使用 memset 设置每个值。我一直在使用 dbx 来观察这个变量,因为它进入了函数,并且由于某种原因,在我们通过 memset 之后它被设置为“”。
首先,为什么会发生这种情况?我假设 memset 必须重置 char * 所在的内存?
其次,有没有更好的方法将每个元素设置为“0”?
这是我的代码:
static char *writeMyStr(char *myStr, int wCount) {
// here myStr is set to "My String is populated"
char **myArr;
myArr = (char **) malloc(sizeof(char *) * wCount);
memset(myArr, 0, sizeof(char *) * wCount); // myStr is set to ""
... populate array ...
}