"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 표준 C에서 가변 크기 배열을 선언하는 방법은 무엇입니까?

표준 C에서 가변 크기 배열을 선언하는 방법은 무엇입니까?

2025-04-15에 게시되었습니다
검색:522

How Can I Declare an Array With a Variable Size in Standard C?

변수 배열 크기








n = fread(Sbuf, sizeof(char), siz, picture);
/* ... do stuff with the buffer ... */
/* memset(Sbuf, 0, sizeof(Sbuf)); */


변수 크기 크기가있는 C의 동적 배열 할당은 다음 프로그램을 고려하십시오. 0;

파일* 그림;

picture = fopen ( "test.jpg", "R"); // 파일의 시작으로
    while (! feof (picture)) {
  • n = fread (sbuf, sizeof (char), siz, picture); / * ... 버퍼로 물건을하십시오 ... */ /* memset (sbuf, 0, sizeof (sbuf)); */
  • }
  • 위의 코드는 변수 siz에 의해 결정된 크기를 가진 문자 배열을 할당하려고 시도합니다. 그러나 표준 C에서는 어레이 크기가 상수 여야합니다. 이것은 코드 컴파일을 허용하기 위해 Siz를 올바르게 선언 할 수 있습니까?
불행히도, 표준 C에서 다양한 크기의 배열을 선언하는 직접적인 방법은 없습니다. 그러나 몇 가지 대안이 존재합니다.

How Can I Declare an Array With a Variable Size in Standard C?

std :: Vector :

std :




std :: vector a as a as a as a a a a worly a as a a std :: 배열. 원하는 크기로 쉽게 확장 할 수 있으며 사용량은 비교적 간단합니다.


새 연산자 :
새 연산자는 힙에 동적으로 메모리를 할당하기 위해 사용할 수 있습니다. 가변 크기의 배열을 만들려면 char* sbuf = new char [siz]를 사용할 수 있습니다. 힙에 SIZ 문자 배열을 할당합니다. 그러나이 접근 방식은 메모리 관리 문제 (예 : 잠재적 메모리 누출)를 소개하여 std :: 벡터보다 적합합니다.


최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3