标签: 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”时。为什么它不缺少内存?换句话说,为什么这不会给我任何错误?