배열 포인터 동적할당 (C언어 C++)
- 프로그래밍/C언어
- 2011. 3. 4. 23:18
#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]);
}
[출처] 배열포인터 동적할당|작성자 갓키짱
이 글을 공유하기