| [ CnUnix ] in KIDS 글 쓴 이(By): Gunee (해오라비) 날 짜 (Date): 2002년 3월 26일 화요일 오후 09시 10분 15초 제 목(Title): [Q] pow 함수의 사용법 for (i=0;i<16;i+=2) { for(j=0;j<8;j++) { arms[i] += (x = (clio[j] & (byte)pow((double)2,(double)(i/2)))) ? pow(2,j) : 0 ; } } 위의 문장에서 stack buffer overflow가 납니다. double pow(double, double)인데 특별한 사용법이 있나요? 2^0 값을 printf로 찍어보면 4022가 나옵니다. cygwin gcc 버전은 2.95.3-5 (cygwin special)로도 테스트 해보고, Borland Compiler 5.5로도 테스트 해보고 Visual Studio 6.0으로도 테스트 했는데, 같은 결과가 나옵니다. int i,j,x; 로 선언하였습니다. byte는 char로 alias되어 있습니다. Fear can hold you prisoner, Hope will set you free !!! |