考虑以下代码:
int *p = new int;
cout << sizeof(*p);
delete p;
如预期的那样,结果是4。现在,请考虑以下代码:
int *p = new int[10];
cout << sizeof(*p);
delete[] p;
我原本期望得到40(已分配数组的大小),但结果仍然是4。
现在,假设我有一个函数int *foo()
,返回指向使用new
或new[]
创建的结构体的指针(但我不知道哪个):
int *p = foo();
我的问题是,是否有一种方法(或者技巧)可以知道
p
指向单个整数还是整数数组?请记住,这只是一个理论问题。我不会以这种方式编写真正的代码。