mwultong Blog ... 프로그래밍 / 계산기

컴퓨터 엑셀 워드 포토샵 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Tuesday, February 20, 2007

C언어] 포인터 배열 (문자열 배열) 요소 개수(크기/사이즈) 구하기; String Array Size


크기를 지정하지 않은, 포인터 배열을 선언하고 문자열들로 초기화한 후, 그 배열의 "요소 개수 (배열 사이즈)" 등을 구하는 방법입니다.

문자열 배열 선언, 초기화, 크기 계산 예제


소스 파일명: example.cpp
※ 아래 박스 클릭 후, 키보드로 좌우 스크롤 가능함
#include <stdio.h>
#include <string.h> // strlen()

int main(void) {

  // char형 포인터 배열 (문자열 배열) 선언 + 초기화
  // 5개의 문자열이 들어가 있는 배열(5 element array of pointer to char)입니다.
  char *s[] = {
    "A",
    "BB",
    "CCC",
    "DDDD",
    "EEEEE",
  };


  // 포인터 배열의 바이트 수 출력
  printf("%d\n", sizeof(s));
  // 출력 결과: 20
  // 4바이트인 포인터가, 5개 있어, 4 * 5 = 20 이기에



  // 모든 문자열의 길이의 합계 (null 문자는 제외)
  size_t total_size = 0;
  for (size_t i = 0; i < sizeof(s) / sizeof(s[0]); i++) {
    total_size += strlen(s[i]);
  }
  printf("%d\n", total_size);
  // 출력 결과: 15
  // s 에 들어 있는 글자들이 총 15글자이기에
  // (영문 1글자는 1바이트, 한글 1글자는 2바이트)




  // 배열 요소 개수 출력
  printf("%d\n", sizeof(s) / sizeof(s[0]));
  // 출력 결과: 5
  // 배열에 5개의 요소가, 즉, 5개의 문자열이 있으므로


  // 0번째(첫번째) 배열 요소 사이즈 출력
  printf("\"%s\" = %d\n", s[0], sizeof(s[0]));
  // 출력 결과: "A" = 4
  // 32비트 컴퓨터에서, 포인터 변수는 4바이트이므로


  // 4번째(마지막) 배열 사이즈 출력
  printf("\"%s\" = %d\n", s[4], sizeof(s[4]));
  // 출력 결과: "EEEEE" = 4
  // 32비트 컴퓨터에서, 포인터 변수는 4바이트이므로


  return 0;
}



▶▶ C언어] 배열 크기, 사이즈 (요소 개수) 구하기; Get Array Size, Number of Elements




tag: cpp
C언어 | C/C++ (Visual C++) 프로그래밍

1 Comments:
At March 19, 2014 at 1:39 PM, Blogger 대성 said...

잘배우고 갑니다~

 

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Previous Posts
Monthly Archives
Top