[완료]메모리 할당 관련 문제
아래와 같은 값이 있습니다.
단 아래의 값의 수는 가변적입니다.
그래서 포인터로 처리하려고 합니다.
부득이 생각한게 구조체를 사용하구요.
points="179,113 269,113 269,202 179,202"
struct xy
{
char *x_points;
char *y_points;
};
그리고
char *tmpPoints[2];
struct xy *tmpXy;
tmpPoints[0] = (char *)malloc(sizeof(char)*8);
tmpPoints[1] = (char *)malloc(sizeof(char)*8);
tmpXy = (struct xy *)malloc(sizeof(struct xy));
아래에 x, y의 좌표를 순차적으로 tmpPoints라는 포인터에 저장하고
그 주소를 다시 tmpXy 구조체 포인터에 주게 됩니다.
while(bufLine[i] != '"')
694 {
695 if(bufLine[i] != ',' && bufLine[i] != ' ')
696 {
697 if((even%2))
698 {
699 tmpPoints[0][j++] = bufLine[i++];
700 }
701 else
702 {
703 tmpPoints[1][j++] = bufLine[i++];
704 }
705 }
706 else
707 {
708 if(bufLine[i] == ',')
709 {
710 tmpPoints[0][j] = '\0';
711 tmpXy[k].x_points = tmpPoints[0];
712
713 i++;
714 j = 0;
715 even++;
716 }
717 else if(bufLine[i] == ' ')
718 {
719 tmpPoints[1][j] = '\0';
720 tmpXy[k].y_points = tmpPoints[1];
721 i++;
722 j = 0;
723 even++;
724 k++;
725 }
726 }
727 }
문제는 k를 증가시켜가면서 한쌍 이상의 x,y좌표를 저장하려하는데
그게 안되네요.
어찌해야 하는지 알려주시면 베리 캄사 땡큐...
감사함다.
포인트(점)을 다루는
포인트(점)을 다루는 스트럭쳐를 정의하고
이 스트럭쳐의 배열을 이용하도록 구조를 고치는게 낫을것 같습니다.
그리고 입력이 스트링에 저장되어 있나요?
그렇다면 이 스트링을 파싱해서 원하는 데이터를 뽑는 부분과,
뽑아진 데이터를 처리하는 부분으로 나눠서 생각하는게
프로그램하기 편할 것 같습니다..
아래 코드
아래 코드 참고하세요~
from amateur
from amateur
from amateur
댓글 달기