배열 포인터 동적할당 (C언어 C++)

#include <stdio.h>

int main()
{
 int i;

 char (*p)[4] = (char (*)[4])malloc(3*4*sizeof(char));
 strcpy(p[0], "dog");
 strcpy(p[1], "cow");
 strcpy(p[2], "cat");
 

for (i=0; i<3; i++) 

   puts(p[i]);

 

free(p);
}

 

C언어에서는 배열포인터를 동적할당할려면 위에 처럼

Char (*p)[4] = (char(*)[4])malloc(3*4*sizeof(char)); 이렇게되는데

 

C++에서 배열포인터를 동적할당할려면 아래서 처럼

포인터배열를 변수로 만든다음 for문으로 할당할 크기를 정해준다음

p[i] = new char[12*sizeof(char)]; 배열값에다가 동적할당해야지된다

동적할당을 해제할적에도 for문으로해서 해제해줘야지된다.

 

#include <iostream>
using namespace  std;

int main()
{
 int i;

 char *p[4];    //포인터배열
 

//동적할당생성

for (int i=0; i < 4; i++)
 {
  p[i] = new char[12*sizeof(char)];

 }

 

//동적할당 해제

 for (int i=0; i < 4; i++)
 {
  delete [] p[i];
 }
 strcpy(p[0], "dog");
 strcpy(p[1], "cow");
 strcpy(p[2], "cat");
 for (i=0; i<3; i++) puts(p[i]);
}

이 글을 공유하기

댓글

Designed by JB FACTORY