求救一下,發生了RE但是我不知道問題出在哪
這樣我完全不知道該如何修正,煩請知道的人跟我講一下,謝謝。
====================
執行時發生錯誤 (SIGSEGV)(11)!!
Segmentation fault, an address reference boundary error.(記憶體區段錯誤)
可能原因為:
* 通常為使用超過陣列範圍
* 指標指向不正確位址!
* 陣列初始化不正確!
* 嘗試在執行時期定義陣列長度!
sh: line 1: 32230 程式記憶體區段錯誤
==================================
程式如下 :
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main()
{
int i,j,len;
double even,odd;
char Data[1000],str[16];
while(gets(Data))
{
len=strlen(Data);
even=0,odd=0;
for(i=0;i<len;i++)
if(Data[i]==':')
{
j=0;
if(Data[i-1]%2)
{
while(Data[++i]!=' ')
str[j++]=Data[i];
str[j]='\0';
odd+=atof(str);
}
else
{
while(Data[++i]!=' ')
str[j++]=Data[i];
str[j]='\0';
even+=atof(str);
}
}
odd-=even;
printf("%f",odd);
}
return 0;
}