2 liuyanming002 liuyanming002 于 2015.07.23 15:50 提问

C++代码问题,求大神帮忙看看代码有什么问题?
c++

#include "stdafx.h"
#include
#include
#include

#define M_PI 3.14159265358979323846

int main(int argc, char* argv[])
{
int tableSize=512;
double sinTable[]={0};
for(int n = 0; n < (tableSize + 1); n++)

{

sinTable[n]= sin(2*M_PI*n/tableSize);
printf("s=%lf\n",sinTable[0]);
}
return 0;
}

6个回答

oyljerry
oyljerry   Ds   Rxr 2015.07.23 15:52
已采纳

double sinTable[]={0};
这里分配的空间大小根本不够后面的tableSize那么大

你应该

 double sinTable[512]={0};
snyceidt
snyceidt 回复liuyanming002: for(int n = 0; n < (tableSize + 1); n++) 这样的话,下标是会越界的。
2 年多之前 回复
xujian2521
xujian2521 再把for(int n = 0; n < (tableSize + 1); n++)改为for(int n = 0; n < tableSize; n++)
2 年多之前 回复
liuyanming002
liuyanming002 还是出现了这个错误First-chance exception in sin.exe: 0xC0000005: Access Violation.
2 年多之前 回复
mong_ma
mong_ma   2015.07.23 16:29

#include
#include
#include
是什么意思啊

u014731052
u014731052   2015.07.23 16:30

你这是C语言不是C++吧?

u014731052
u014731052   2015.07.23 16:34

iostream 呢?

sina_2831808769
sina_2831808769   Rxr 2015.07.25 13:44

double sinTable[]={0};
这里分配的空间大小根本不够后面的tableSize那么大

你应该

lingzhu111
lingzhu111   2015.07.28 15:58

分配空间大小不够

double sinTable[tableSize] = {0};
for(int n = 0; n < sizeof(sinTable)/sizeof(double); n++)

Csdn user default icon
上传中...
上传图片
插入图片