下面的程序,是用数组建立一个二叉树,但是引发了异常。
引发了异常: 写入访问权限冲突。
btree 是 0x1A50802。上网查了一下 说是数组越界了,但是我不知道是哪个数组越界了,请大神帮我调试,修改一下。下面附上代码。
#define _CRT_SECURE_NO_WARNINGS...下面的程序,是用数组建立一个二叉树,但是引发了异常。
引发了异常: 写入访问权限冲突。
btree 是 0x1A50802。上网查了一下 说是数组越界了,但是我不知道是哪个数组越界了,请大神帮我调试,修改一下。下面附上代码。
#define _CRT_SECURE_NO_WARNINGS
#include
#include
#include
void create_(int *btree, int *data, int len)
{
int i;
int level;
btree[1] = data[0];
for (i = 1; i < len; i++)
{
level = 1;
while (btree[level] != 0)
{
if (data > btree[level])
{
level = level * 2 + 1;
}
else
{
level = level * 2;
}
}
btree[level] = data;
}
}
void print_btree(int *tree, int len)
{
int i;
for (i = 0; i < len; i++)
{
if (tree != 0)
{
printf("%d ", tree);
}
}
}
void main()
{
int btree[42];
int data[20] = {20,19,18,17,16,15,14,13,12,11,21,22,23,24,25,26,27,28,29,30};
//create a bree
int i;
for ( i= 0; i < 42; i++) btree = 0;
create_(btree, data, 20);
print_btree(btree, 42);
}展开 |
|