2013-09-02 3 views

답변

5

명시 적 형 변환이있는 것처럼 모든 값은 암시 적으로 size_t으로 변환되어 함수를 호출합니다. 부동 소수점 숫자는 잘 리며 'j'은 문자 집합의 숫자 값으로 해석됩니다.

2

Malloc은 정수 '바이트 수'를 허용하도록 정의됩니다.

C 언어는 다른 데이터 유형에서 정수로 변환하기위한 규칙을 정의합니다.

각 값이 변환되는 것을 스스로 해결할 수있을 것입니다.

3

"그냥 경고"는 아마도 설명을 숨 깁니다.

비 정수형의 값을 정수형 킥인으로 변환/승격시키는 다양한 규칙으로, malloc()size_t 즉 부호없는 정수를 얻습니다. 부동 소수점 호출은 예를 들어 분수를 삭제하고 10 바이트를 할당하려고 시도합니다.

또한 please don't cast the return value of malloc() in C입니다.

3

malloc()은 size_t 인수를 취합니다.

컴파일러는 1010.45/10.45f을 절단하고 그 ASCII 값 (106)에 'j'를 변환합니다.

그것은 size_t

+0

아니, 오히려 암시 적 변환의 언어를 입력 할 수 있습니다. 캐스트는 정의에 따라 명시 적입니다. –

관련 문제