在运行时如何区分指针和引用?例如,如果我想在不知道它是否是指针的情况下释放数据类型的指针,我该怎么做?有什么方法可以判断变量是在堆栈上还是通过 malloc() 分配的?
void destInt(int* var)
{
free(var);
}
int num = 3;
int &numRef = num;
int* numPtr = (int*)malloc(sizeof(int));
*numPtr = num;
destInt(&numRef); //Syntactically correct but generates invalid pointer()
destInt(numPtr); //Fine syntactically and logically