malloc(0) malloc原型: void *malloc(size_t len) 当len = 0 的时候会发生什么呢 能成功分配且指针不为NULL 只是指向一个位置 没有属于自己的分配内存 可以利用指针使用不属于自己的内存单元(编译器没有警告) 自身只是指向一个位置 却可以使用内存 而且编译器没有警告 这种情况容易出现错误而不易察觉 char *p = (char *)malloc(0); if( p != NULL