int main(){
int *p;
long n = 1;
while (p!=NULL)
{
n=n+1000000000;
p = (int *)malloc(sizeof(int)*n);
}
if(!p){
printf("%ld\n",n);
printf("hello");
}
return 1;
}
最后得到n为负值,是因为n达到了长整型能到达的最大值时,仍有内存空间可以分配吗?
但为什么把n=n+1000000000的0去掉一个之后就能得到n为正值
(都输出了hello)
初学数据结构,感谢大家
为什么这样输出的n为负值呢?是溢出了吗
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-