Почему я получаю runtime eror при запуске этого кода в gcc-компиляторе ?? Он отлично работает в turboC. Я работаю над этим пару дней без каких-либо успехов. Незлая помощь.Ошибка выполнения во время компиляции
#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;
}
Что линия является ошибка? Вы запустили его в отладчике, чтобы узнать? Одна вещь, которая, несомненно, является проблемой, заключается в том, что 'N' является указателем, который не инициализирован, чтобы указывать на что-либо. Почему это не просто int? –
Подробнее о [неопределенном поведении] (http://en.wikipedia.org/wiki/Undefined_behavior). Ваша программа получила некоторые. –
Если вы скомпилировали свою программу с включенными предупреждениями, то у вас появятся некоторые подсказки: – wRAR