2012-01-07 2 views
2

나는 선언과 두 개의 변수를 초기화 한 (itoa없이) 표준 C에서 * 숯불하기 변환 기능은 C++에서 제공됩니다. 나는 우분투 11.10 모든변환 INT는

+3

왜 itoa를 사용할 수 없습니까? –

+1

@rogelware :'itoa'는 표준 C 함수가 아니며 Linux에서는 사용할 수 없습니다. –

+0

표준 C 함수는 무엇을 의미합니까? 그것은 에 있습니다. 당신은 포함을 사용할 수 없다는 것을 의미합니까? (그냥 체크, 예, itoa는 표준이 아닙니다) –

답변

12

먼저 사용하고

itoa는 C++ 일이 아니다.

str = malloc(16); 
snprintf(str, 16, "%d", a); 

15 개 문자 방법 : 당신은 버퍼 오버 플로우의 위험을 제거 할 수 있지만 snprintf를 사용하는 것이 좋습니다 실제 응용 프로그램에서

sprintf(str, "%d", a) 

:

당신은 단순히 sprintf을 사용할 수 있습니다 정수를 저장하기에 충분합니다.

+3

'sizeof (char)'는 1 정의와 같고'calloc'은 과잉이다. 또한'calloc'의 결과를 캐스팅하는 것은 쓸모가 없다. 단지'str = malloc (BUFSIZE)'이면 충분합니다. –

+0

그래, 그의 질문에서 복사 해 놨어. 그러나 malloc 대신 calloc을 사용하는 사람이 많이 있는데, 인수 중 하나가 '1'이라도 메모리를 null로 지정하고 할당 후 memset을 수행하는 번거 로움을 덜어주기 때문입니다. – ThiefMaster

+0

충분히 정교하지만, 이미 정정을하고 있다면, 이것들을 추가하고 싶을 수도 있습니다. –