编译时运行时错误

时间:2014-09-03 03:57:57

标签: c gcc runtime-error turbo-c

为什么在gcc编译器中运行此代码时会出现运行时错误?它在turbo C中运行良好。我已经在这方面工作了几天而根本没有进展。请帮助。

#include<stdio.h>

int main()
{
int T,i=0,num,sum,temp,j;
int *N;
scanf("%d",&T);
while(i++<T)
{
scanf("%d",N);
temp=*N;
while((*N)-->0)
{

    sum=0;
    num=(*N)+1;
    for(j=0;j<64;j++)
    {
    if(num&1)
        sum+=1;
    num=num>>1;
    }
if(((*N)+1+sum)==temp)
    break;
}
printf("%d\n",((*N)<0)?-1:(*N)+1);

}

return 0;

}

1 个答案:

答案 0 :(得分:2)

包含头文件

# include <stdlib.h>

在使用之前将内存分配给指针。

int *N;
N = (int *)malloc (sizeof (int));

使用后释放已分配的内存

free (N);