我有以下代码
int isBST(struct node* node)
{
return(isBSTUtil(node, INT_MIN, INT_MAX));
}
int isBSTUtil(struct node* node, int min, int max)
{
if (node==NULL)
return 1;
if (node->data <= min || node->data > max)
return 0;
return
isBSTUtil(node->left, min, node->data) && // Allow only distinct values
isBSTUtil(node->right, node->data, max); // Allow only distinct values
}
当我在 GDB 中调试代码时,我看到第二个参数由地址 ebp + 0xc (0xbffff188+0xc) 设置,第三个参数设置为 ebp + 0x10,而第一个参数不清楚在哪里,理论上,我们知道函数的返回地址是位于EBP+4,第一个参数是位于EBP+8,而....从我那里得到什么?