Tuesday, February 20, 2007
C언어] 포인터 배열 (문자열 배열) 요소 개수(크기/사이즈) 구하기; String Array Size
크기를 지정하지 않은, 포인터 배열을 선언하고 문자열들로 초기화한 후, 그 배열의 "요소 개수 (배열 사이즈)" 등을 구하는 방법입니다.
소스 파일명: example.cpp
※ 아래 박스 클릭 후, 키보드로 좌우 스크롤 가능함
▶▶ C언어] 배열 크기, 사이즈 (요소 개수) 구하기; Get Array Size, Number of Elements
문자열 배열 선언, 초기화, 크기 계산 예제
소스 파일명: 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;
}
#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++) 프로그래밍
잘배우고 갑니다~
<< Home