아틴
Atin
아틴
전체 방문자
오늘
어제
  • 분류 전체보기 (460)
    • Devlopment (246)
      • 정리 글 (20)
      • MicroServices (0)
      • Reactive, Concurrenc.. (12)
      • Java (44)
      • Spring (20)
      • C,C++,Ruby,Python (52)
      • Mobile (39)
      • Web (35)
      • Tip & Info (14)
      • Unit Test (7)
    • Infra (44)
      • OS (21)
      • RDBMS (13)
      • NoSQL&Cache (5)
      • AWS (4)
    • Computer Science (11)
    • Etc (156)

블로그 메뉴

  • Home
  • Guestbook

공지사항

인기 글

태그

  • mysql
  • 여행
  • 던젼 앤 드래곤즈
  • 아이폰
  • CSS
  • C
  • 해킨토시
  • Android
  • jsp
  • Java
  • Ruby on Rails
  • Linux
  • Python
  • 안드로이드
  • 전라도
  • TRPG
  • javascript
  • 정읍
  • 자바
  • Dungeons & Dragons

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
아틴

Atin

Devlopment/C,C++,Ruby,Python

[VC++] 이중 포인터에 이차원 배열 형태의 문자열 할당하기.

2010. 10. 26. 11:41
반응형

/*
 * Author  : Chang-Hwan Han
 * Date   : 2010.10.26
 * Description : using a double pointer instead of an two-D array
 */
#include "stdio.h"
#include "stdlib.h"
#include "string.h"

void __printVar_pointer(char **pszVar, int nMaxCount);
void __printVar_array(char (*pszVar)[20], int nMaxCount);

void main()
{
  int nCount = 3, i =0;
  char **szPointer = NULL; 
  char szArray[3][20] = {"pointer", "array", "stack and heap"};
 
  szPointer = (char **)malloc(sizeof(char*)*nCount);

  for(i=0; i<nCount; i++)
  {
    szPointer[i] = (char *)malloc(strlen(szArray[i]) + 1);
    strcpy(szPointer[i], szArray[i]);
  }

  __printVar_array(szArray, nCount);
  __printVar_pointer(szPointer, nCount);
 
  for(i=0; i<nCount;i++) free(szPointer[i]); 
  free(szPointer); 
}

void __printVar_pointer(char **pszVar, int nMaxCount)
{
  int i;
  printf("--------------------\n");
  printf("  Double Pointer\n");
  printf("--------------------\n");
  for(i=0; i<nMaxCount; i++)
  {
    printf("sizeof[%d] Var[%s] \n", strlen(pszVar[i]), *(pszVar+i));
  }
}

void __printVar_array(char (*pszVar)[20], int nMaxCount)
{
  int i;
  printf("--------------------\n");
  printf("  Two-D Pointer\n");
  printf("--------------------\n");
  for(i=0; i<nMaxCount; i++)
  {
     printf("sizeof[%d] Var[%s] \n", strlen(pszVar[i]), *(pszVar+i));
  }
}
/*
 *(a+0)  = a[0]
 *(*a+1) = a[1][0]
 */



이중 포인터에 동적으로 이차원 배열을 할당하기 위해 잠시 테스트를 해보았다.
문제는 이차원 배열을 이중포인터로 넘기지 못하는 것인데 이 부분은 조금 더 공부를 해봐야겠다.

참조글 :
[1] http://winapi.co.kr/clec/cpp1/11-3-5.htm
[2] http://kldp.org/node/51763
[3] http://blog.naver.com/junetaeda?Redirect=Log&logNo=30035439018


반응형

'Devlopment > C,C++,Ruby,Python' 카테고리의 다른 글

[VC++] Google C++ Style Guide  (0) 2011.10.14
[VC++] HEAP CORRUPTION DETECTED 에러 해결  (0) 2011.02.23
[VC++] 마우스 휠 클릭 처리  (0) 2010.11.25
[VC++] 더블 링크드 리스트  (0) 2010.10.27
[VC++] 구조체 패킹과 패딩 비트  (1) 2010.08.25
[VC++] 'symbol' 외부 기호(참조 위치: 'function' 함수)에서 확인하지 못했습니다.  (0) 2010.07.22
[VC++] vcvars32.bat 및 nmake.exe파일 위치  (0) 2010.06.18
[VC++] Visual Studio 6에서 include 경로 추가  (0) 2010.06.17
[VC++] CString -> char 변환  (0) 2010.04.21
[VC++] Debug모드와 Release모드  (0) 2010.04.15
    'Devlopment/C,C++,Ruby,Python' 카테고리의 다른 글
    • [VC++] 마우스 휠 클릭 처리
    • [VC++] 더블 링크드 리스트
    • [VC++] 구조체 패킹과 패딩 비트
    • [VC++] 'symbol' 외부 기호(참조 위치: 'function' 함수)에서 확인하지 못했습니다.
    아틴
    아틴

    티스토리툴바