复制的字符串的大小大于分配给指针的大小

时间:2018-08-13 18:12:23

标签: string malloc strcpy

main()
{
 char*p = (char*)malloc(strlen("Hello World\n");
 if(p)
 {
  strcpy(p,"Hello World\n");
  free(p);
 }
}

strlen()返回12。因此malloc()将12个字节分配给'p'。但是sizeof(“ Hello World \ n”)是13。因此,当在'p'中复制“ Hello World \ n”时。为什么它不缺少内存?换句话说,为什么这不会给我任何错误?

0 个答案:

没有答案