小编Inc*_*ion的帖子

为什么我能够使用数组索引访问其他变量?

这里LEN为A [10]和是在A [11].有没有办法捕捉这些错误?我尝试使用gcc -Wall -W进行编译,但没有显示任何警告.

int main()
{
  int A[10];
  int i, len;
  len = sizeof(A) / sizeof(0[A]);
  printf("Len = %d\n",len);
  for(i = 0; i < len; ++i){
    A[i] = i*19%7;
  }
  A[i] = 5;
  A[i + 1] = 6;
  printf("Len = %d i = %d\n",len,i);
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出: Len = 10 Len = 5 i = 6

c

1
推荐指数
1
解决办法
135
查看次数

二叉搜索树删除中的指针问题

我正在尝试实现二进制搜索树操作并在删除时陷入困境.

  11
 /  \
10  14 
Run Code Online (Sandbox Code Playgroud)

使用inorder遍历作为树的表示最初输出是10 11 14.

删除节点10,输出预期为11 14但我得到0 11 14.

删除节点14,输出预期只有11但我得到0 11 67837.

请解释我输出错误的原因.我不是在找任何代码:).

typedef struct _node{
  int data;
  struct _node *left;
  struct _node *right;
} Node;

Node* bstree_search(Node *root, int key)
{
  if(root == NULL){
    return root;
  }
  // Based on binary search relation, key can be found in either left,
  // right, or root.
  if(key > root->data)
    return bstree_search(root->right, key);
  else if(key < root->data)
    return bstree_search(root->left, key);
  else
    return root;
}
void bstree_insert(Node **adroot, int …
Run Code Online (Sandbox Code Playgroud)

c binary-tree pointers

0
推荐指数
1
解决办法
1402
查看次数

标签 统计

c ×2

binary-tree ×1

pointers ×1