清零整个char指针

Bri*_*ian 2 c pointers char

我试图将整个char指针归零.如果我执行声明:

memset(myCharPointer, 0, sizeof(myCharPointer));

它只将前4个字节归零,因为这是char我系统上指针的大小.

那么如何确保数据完全设置为0?将其设置为NULL不会消除整个char指针.

pal*_*ogt 9

sizeof(myCharPointer)将给你一个sizeof(char*),这是一个指针的大小,通常是四个字节.sizeof(char)将为您提供1个字节.

要做memset,你需要知道你的数据有多长.例如,

memset(myCharPointer, 0, myCharPointerLen);

  • 除非我误解了这个问题,否则他想把零填入由myCharPointer指向*的数据中.他不希望NULL指针本身. (2认同)

Arg*_*ote 5

如果你知道你指向的char数组的长度,你可以这样做:

memset(myCharPointer, 0, sizeof(*myCharPointer) * length);
Run Code Online (Sandbox Code Playgroud)

另外,我相信你应该使用sizeof指针内容而不是指针本身的内容.