여기에 기사를 읽거나 온라인에 게시하면 Eli Bendersky's Website : Binary Representation of Big Numbers이 나오며 함수를 통해 내 IDE에서 테스트하기로 결정했습니다. 이 함수는 & 빌드를 컴파일하지만 코드를 실행할 때 예외를 throw하려고합니다. 쓰기 액세스 위반입니다.쓰기 액세스 예외가 발생하는 함수
/* Note: in and out may be the same string,
it will still work OK
*/
void longdiv2(const char* in, char* out)
{
int carry = 0;
while (*in)
{
int numerator = *in++ - '0';
numerator += carry;
carry = (numerator % 2) == 0 ? 0 : 10;
*out++ = '0' + (numerator/2);
}
*out = '\0';
}
I는 다음과 같이 사용 : 여기
는 기능입니다 액세스 위반이 줄에 발생합니다#include <iostream>
int main() {
char* value = "12345";
char* binResult = '\0';
longdiv2(value, binResult);
std::cout << *binResult << std::endl;
std::cout << "\nPress any key and enter to quit." << std::endl;
char q;
std::cin >> q;
return 0;
}
:
*out++ = '0' + (numerator/2);
위반이 없다는됩니다 out
은 nullptr
이었다.
내가 MS 비주얼 스튜디오에 Win7에 홈 프리미엄 x64를 실행하는 인텔 쿼드 코어 익스트림에 2017 CE이 실행 해요 - 컴파일과 86 콘솔 응용 프로그램으로 내장.
[참고 :] 난 둘 다 C & C++와이 태그 : 기사들이 C를 위해 작성 언급 때문에 나는 그러나 나는 C++에서 동일한 기능을 사용하고, 이런 식으로 태그.
이미 부정적인 비판 ... –
'문자 * binResult = '\ 0'; '기록 효과적으로 동일합니다'문자 * binResult = nullptr; ' – user0042
downvoter에주의하십시오. 그냥'char * binResult = '\ 0';'잘못된 잘못 틀림 –