C Memset输出

Ter*_* Li 0 c memset

#include <stdio.h>
#include <string.h>

int main() {
  char* p = new char[10];
  memset(p,0,10);
  printf("%c",*p);
}
Run Code Online (Sandbox Code Playgroud)

我想memset设置开始每个字节p0.看到什么都没打印出来,我有点惊讶.究竟发生了memset什么?

jwo*_*der 6

memset将所有字节设置为0; 因此,当你取消引用时p,你得到一个char值为0(NUL字节),并且在大多数系统上,打印这样的a char不会产生可见的输出.如果要打印字节的数值,请使用printf("%d", *p);.