본문 바로가기

study/C/C++

이중포인터 동적할당?!?







#include<iostream>
#include<cstring>


using namespace std;

int main(void)
{


 char temp[21]={0};

 //이름을 입력받을 변수, 따로 변수를 만든 이유는 이름을 입력받아야 이름 크기만큼 할당 할 수 있으니까;

 char **stuName=NULL;

//이중 포인터로 학생 이름을 저장할 변수 선언
 
 int str_len=0;         
 int stuCnt = 0;         //학생 수(물론 학생수는 입력하는 사람의 선택에 따라 그 수가 변경됨

 cout<<"몇명의 학생을 입력하시겠습니까? :  ";
 cin>>stuCnt;

 stuName = new char* [stuCnt];;     //이중 포인터로 학생 이름을 저장할 변수 선언
 

 for(int i=0;i<stuCnt;i++)      //입력되는 학생 수만큼 반복(동적으로 할당된 배열만큼)
 {
  cout<<i+1<<" 번째 학생의 이름 : ";
  cin>>temp;

  str_len = strlen(temp)+1;     // +1은 NULL 넣어줘야하니까~

  stuName[i] = new char [str_len];   //학생 이름의 길이만큼 학생 이름[i] 변수에 배열을 할당

  for(int j=0;j<str_len;j++)
  {
   stuName[i][j] = temp[j];    //이름 복사
  }

 }

 for(int i=0;i<stuCnt;i++)      //확인
 {

  for(int j=0;stuName[i][j]!=NULL;j++)
  {
   cout<<"stuName["<<i<<"]["<<j<<"] = "<<stuName[i][j]<<endl;
  }
 }

 for(int i=0;i<stuCnt;i++)
 {
  delete [] stuName[i];
 }
 
 delete [] stuName;

 return 0;
}

'study > C/C++' 카테고리의 다른 글

복사생성자  (0) 2013.02.22
포인터 변수와 주소  (0) 2013.01.29
c++ string 함수 구현  (0) 2013.01.25
동적할당된 다중(이중) 포인터를 인자로 함수 호출  (0) 2013.01.23
c++ 연산자,자료형  (0) 2012.12.20