我试图将整个char指针归零.如果我执行声明:
memset(myCharPointer, 0, sizeof(myCharPointer));
它只将前4个字节归零,因为这是char我系统上指针的大小.
那么如何确保数据完全设置为0?将其设置为NULL不会消除整个char指针.
sizeof(myCharPointer)将给你一个sizeof(char*),这是一个指针的大小,通常是四个字节.sizeof(char)将为您提供1个字节.
要做memset,你需要知道你的数据有多长.例如,
memset(myCharPointer, 0, myCharPointerLen);
如果你知道你指向的char数组的长度,你可以这样做:
memset(myCharPointer, 0, sizeof(*myCharPointer) * length);
Run Code Online (Sandbox Code Playgroud)
另外,我相信你应该使用sizeof指针内容而不是指针本身的内容.