공유메모리에 배열 할당 ...
글쓴이: simba210 / 작성시간: 화, 2009/04/21 - 2:38오후
공유메모리를 할당하여
그곳에 구조체 배열을 저장하려고 합니다.
구조체는 대략
typedef struct {
char data[20];
int pid;
}PROC;
PROC *proc[2];
이렇게 선언하였습니다.
흠... 하나의 공유메모리에 A와 B 라는 프로그램에 대한 정보를 저장하기 위한것인데요
공유메모리에 위의 *proc[2] 변수를 선언하여 proc[0] 에는 A프로세스의 정보를 proc[1]에는 B프로세스의 정보를 저장하고자 합니다.
공유메모리에 저장하는 것이 아니라면
그냥 위의 선언만 하고 사용하면 될테지만, 공유메모리에 저장해야하기 때문에
공유메모리의 크기나 그런것들이 문제가 됩니다.
*proc[2] 변수를 공유메모리에 저장하기 위해서는 PROC 구조체*2 만큼의 크기를 할당해줘야할텐데...
세그먼트 오류가 발생하네요..
포인터배열을 선언하고 공유메모리를 할당할때 크기를 sizeof(PROC) 할 경우에는..
A와 B의 데이터가 따로 저장이 되지 않고 계속 덮어쓰기가 되네요.. 당연한거지만...
공유메모리에 구조체 포인터배열을 할당하는 방법 좀 알려주세요.
Forums:
배열의 포인터 PROC
배열의 포인터
포인터의 배열
OTL
연속 배열이기때문에...
연속 배열이기 때문에
PROC *proc[2]; -> PROC *proc; 로 잡아야 할것 같습니다.
크기는 sizeof( PROC ) * 2 로 잡구요...
댓글 달기