malloc 질문입니다 고수님들 조언 부탁드려요...흑흑

글쓴이: 익명 사용자 / 작성시간: 수, 2002/12/04 - 8:51오후
#include
#include
void getdata(int *a[]){
int num_data;
printf("Input the number ");
scanf("%d",&num_data);
a=(int **)malloc(num_data*sizeof(int));
scanf("%d",a[0][0]);
}
void main(){
int *a[3];
getdata(a);
}
getdata에서 자료를 받아 malloc으로 메모리 할당을 할려고 하는데
동적 2차원 배열은 어떤 식으로 malloc을 구현하는지
잘 모르겠습니당...고수분들 혹 아시면 제발 알려주세요..^^
Forums:
Re: malloc 질문입니다 고수님들 조언 부탁드려요...흑흑
두가지 방법이 있습니다.
가로세로가 규칙적일때는 x * y 값만큼 할당해서 사용하고
x * y기 불규칙적일때는 single linked list로 구현해서
사용하세요.
Re: malloc ==> 이렇게 함 해보세요....
#include
#include
#include
void main(void)
{
char **p2;
int i;
p2 = (char **)malloc( sizeof(char *) * 10);
if( p2 == NULL )
{
printf("p2 malloc error\n");
exit(1);
}
for(i=0; i<10; i++)
{
p2[i] = (char *)malloc( sizeof(char) * 30 );
if( p2[i] == NULL )
{
printf("p2[%d] malloc error\n", i);
exit(1);
}
memset( p2[i], 0x00, 30 );
sprintf( p2[i], "Allocation memory number %d\n", i);
printf("%s", p2[i]);
}
for( i=0; i<10; i++)
{
free(p2[i]);
}
free(p2);
}
간단한 예제인데 해당 플랫폼에 알맞게 include 조정해 주시고요.
저는 Borland C++ 5.02에서 컴파일한 것이라서 만일 리눅스에서
한다면 include는 좀 조정이 필요할겁니다...
근데 꼭 이렇게 쓸 이유가 있을까하는 생각이 듭니다.
그럼...
댓글 달기