목차
- C 언어 함수 포인터 변수 활용 예제 이전 포스팅 참고 학습
- C 언어 문자열 Hex 값 출력 및 16진수 변환 예제 이전 포스팅 참고 학습
- C 언어 Hex 문자열을 바이트로 변환 예제 이전 포스팅 참고 학습
- C 언어 더블 포인터 변수 선언 및 주소 저장, 값 수정 예제
- C 언어 더블 포인터 간단한 활용 예제(2차원 배열)
C 언어 함수 포인터 변수 활용 예제 이전 포스팅 참고 학습
함수 포인터는 C 언어에서 메모리를 직접 접근하고 활요할 수 있는 중요한 타입 변수입니다. 함수 포인터를 사용하면 런타임에 함수를 선택하고 호출할 수 있습니다. 예를 들어, 다른 함수를 가리키는 함수 포인터를 만들고 그 포인터를 사용하여 실행할 함수를 동적으로 결정할 수 있습니다. 함수 포인터의 사용법과 예제는 이전 포스팅에서 자세히 다루었기때문에 해당 내용이 궁금하시다면 아래 링크를 참고해주세요.
2021.12.07 - [C/응용] - C/C++ 함수 포인터 변수 활용 예제 - 2(구조체 함수 포인터)
C 언어 문자열 Hex 값 출력 및 16진수 변환 예제 이전 포스팅 참고 학습
C 언어에서 문자열로 이루어진 Hex 값을 출력하고 이 문자열을 다시 16진수 정수로 변환하는 예제에 대해 이전 포스팅에서 알아보았습니다. 16진수는 컴퓨터 메모리 주소, 이진 데이터, 네트워크 통신에서 유용하게 사용됩니다. 만약 서로 변환 방법에 대해 궁금하시다면 아래 링크를 통해 예제를 확인할 수 있습니다.
2020.07.03 - [C] - C/C++ 문자열 Hex 값 출력(16진수 변환)
C 언어 Hex 문자열을 바이트로 변환 예제 이전 포스팅 참고 학습
마지막으로 C언어에서 Hex 문자열을 바이트로 변환하는 방법에 대한 예제를 이전 포스팅에서 알아보았습니다. 이런 변환이 필요한 경우가 종종 있습니다. 예를 들어, 통신 프로토콜에서 16진수 문자열로 표현된 데이터를 바이트 배열로 파싱해야 할 때 유용합니다. 해당 예제는 이전 포스팅에 자세히 설명되어 있습니다.
2020.07.05 - [C] - C/C++ Hex 문자열 바이트 변환 예제
C 언어 더블 포인터 변수 선언 및 주소 저장, 값 수정 예제
더블 포인터는 포인터를 가리키는 포인터입니다. 즉, 포인터의 주소를 저장하는 포인터입니다. 더블 포인터를 사용하면 포인터 변수를 간접적으로 조작할 수 있습니다. 예를 들어, 함수에서 변수의 주소를 변경하려면 해당 변수에 대한 포인터의 포인터(더블 포인터)를 사용해야 할 수 있습니다. 아래는 간단한 더블 포인터 예제 코드입니다.
#include <stdio.h>
int main() {
int num = 42;
int *ptr = #
int **dbl_ptr = &ptr; // 더블 포인터
printf("Original Value: %d\n", num);
// 더블 포인터를 사용하여 변수 값 변경
**dbl_ptr = 100;
printf("Modified Value: %d\n", num);
return 0;
}
C 언어 더블 포인터 간단한 활용 예제(2차원 배열)
더블 포인터는 다차원 배열과 메모리 동적 할당 등 다양한 상황에서 사용됩니다. 예를 들어, 이중 포인터는 2차원 배열을 동적으로 할당하고 사용하는 데 유용합니다. 아래는 이중 포인터를 사용한 간단한 예제입니다.
#include <stdio.h>
#include <stdlib.h>
int main() {
int rows = 3, cols = 4;
int **matrix;
// 이중 포인터를 사용하여 2차원 배열 동적 할당
matrix = (int **)malloc(rows * sizeof(int *));
for (int i = 0; i < rows; i++) {
matrix[i] = (int *)malloc(cols * sizeof(int));
}
// 예제: 값을 할당하고 출력
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
matrix[i][j] = i * cols + j;
printf("%2d ", matrix[i][j]);
}
printf("\n");
}
// 동적 할당된 메모리 해제
for (int i = 0; i < rows; i++) {
free(matrix[i]);
}
free(matrix);
return 0;
}