<分区>
我有一段愚蠢的代码,需要一些解释。
int main() {
int *ptr_i = new int[100];
char *ptr_c = (char *)ptr_i;
delete [] ptr_c;
return 0;
}
首先,我原以为这段代码会崩溃,但我认为它并没有崩溃,因为在这种情况下,分配器将跟踪要取消分配的字节数。我也在这段代码上运行了 valgrind,它没有显示内存泄漏。 我需要澄清以下内容:
如果处理 POD 数据类型,char 的 c'tor 与 int 的 c'tor 有何不同?
除了编码规范之外,这段代码还会导致什么其他问题?