Codeblocks有BUG?还是Codeblocks处理问题的方法不一样
codeblocks吧
全部回复
仅看楼主
level 2
种风格1P 楼主
# include <stdio.h>
# include <malloc.h>
int main(void)
{
int len = 1;
/*
我知道我这里无论是 len=1 还是 len=0 都是有问题的;
我是想知道我len=1时,vc++6.0报错,而codeblocks为啥不报错
是codeblocks有bug还是两个编译器处理逻辑问题的方式不同。
*/
int * p;
char * q;
int i;
printf("%d\n", len);
p = (int *)malloc(4 * len);
printf("%d\n", len);
q = (char *)malloc(1 * len);
printf("%d\n", len);
printf("请输入几个整数,以空格隔开,按下\"回车\"结束输入\n");
for (len=0; len>=0; len++)
{
scanf("%d", &p[len]);//&*(p+len)
scanf("%c", &q[len]);
if(q[len] == '\n')
break;
}
for (i=0; i<=len; i++)
{
printf("%d\n", p[i]);
}
free(p);
free(q);
return 0;
}
2014年12月20日 21点12分 1
level 2
种风格1P 楼主
当len=0时,截图如下:
vc++6.0编译的结果:
codeblocks编译的结果:
当len=1时,截图如下:
vc++6.0编译的结果:
codeblocks编译的结果:
这时候codeblocks编译正常,运行也不报错,程序正常。
2014年12月20日 21点12分 2
level 2
种风格1P 楼主
大家可以试试把我那段代码分别在codeblocks和vc++6.0里面运行试试,看看是什么情况
2014年12月20日 21点12分 3
level 8
len=0时malloc(1 * len)就没有意义了,当然是错的也是不允许的,等于1的话基本也没有意义。
2014年12月21日 05点12分 4
恩,是的,只是不知道为啥为1的时候codeblocks运行不报错
2014年12月21日 16点12分
@种风格1P 有个疑问想请教一下,为什么等于1的时候也没有意义?
2018年09月08日 03点09分
level 13
有的程序build以后显示已经停止运行是怎么回事啊
2014年12月21日 08点12分 5
那应该是程序有逻辑错误
2014年12月21日 16点12分
level 9
厉害绝对厉害
2014年12月22日 00点12分 6
1