C의 Malloc, Visual Studio

앤드류 빌 렌코

malloc6 바이트 char유형을 할당 하지만 2 바이트가 필요합니다. 내가 1 바이트를 할당하면 그는 5 바이트를 할당합니다. 이유를 모르겠습니다.

#include "stdlib.h"

int     main()
{
  char *lin = malloc(2);
  lin[0] = 'a';
  lin[1] = 'b';
  char *line = (char *)malloc(sizeof(char) * 2);
  line[0] = 'z';
  line[1] = 'b';

  printf("lin = %s\nline = %s\n", lin, line);

  get_next_line(fd, line);
  return (0);
}

콘솔이

lin = ab¤¤¤¤
line = zb¤¤¤¤
Sergey

C에서 ASCII 문자열은 0이 아닌 바이트의 시퀀스와 값이 0 인 바이트로 표시됩니다 . Null로 끝나는 바이트 문자열을 참조하세요 . 문자열 "ab"은 값을 보유하는 배열로 표시됩니다 0x61, 0x62, 0x00.

예:

string:     'a'  | 'b'  |
memory:     0x61 | 0x62 | 0x00

빠른 수정:

char *lin = malloc(3); // allocate one more char
lin[0] = 'a';
lin[1] = 'b';
lin[2] = '\0';         // terminate the string

귀하의 경우, malloc6 바이트를 할당 printf하지 않고 문자열이 0으로 끝나지 않기 때문에 의사 임의 "가비지"를 인쇄합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Visual C ++ : malloc / free 교체

분류에서Dev

Visual Studio의 C 또는 C ++

분류에서Dev

MacBook의 Visual Studio

분류에서Dev

Visual Studio의 Boogie

분류에서Dev

C # 용 Visual Studio

분류에서Dev

C # Autoclicker Visual Studio

분류에서Dev

C ++ / Visual Studio의 생성자

분류에서Dev

Visual Studio Winforms C #의 URL Regex

분류에서Dev

Windows Visual Studio for C에서 배열을 Malloc (0)하면 프로그램이 완벽하게 잘 실행됩니다.

분류에서Dev

Visual Studio 2013의 OpenGL

분류에서Dev

Visual Studio의 LOOPING GUI

분류에서Dev

Visual Studio Online의 OpenCover

분류에서Dev

Visual Studio 2015의 Iostream

분류에서Dev

Visual Studio 2019 C ++ CodeLens

분류에서Dev

GUI on C in VIsual Studio 2013

분류에서Dev

Visual Studio 2017의 Visual Studio 2019 C # 코드 색

분류에서Dev

Visual Studio 2017의 Visual Studio 2019 C # 코드 색

분류에서Dev

Visual Studio 2012 C #의 mysql 연결 상태

분류에서Dev

Visual Studio 2012의 C 명령 인수

분류에서Dev

Visual Studio C # 출력의 새 줄

분류에서Dev

C의 Visual Studio 동적 배열

분류에서Dev

Visual Studio C #의 기본 코딩 색상

분류에서Dev

Visual Studio C #의 PictureBox 버그 이동

분류에서Dev

MSVC에서 C 함수 모의 (Visual Studio)

분류에서Dev

Visual Studio 2015의 경고 C4594

분류에서Dev

Visual Studio 2013의 C ++ 및 Cuda 속도

분류에서Dev

Visual Studio 2015 오류의 C 코드

분류에서Dev

C ++의 Malloc 오류?

분류에서Dev

malloc의 C 대안