배열 첫,끝 구분하기 질문드립니다.
초코향
안녕하세요. 배열을 이용해서 예외처리를 하려고 하는데 잘안되네요.
바로 질문들어 가겠습니다.
배열을 선언하고 배열에 특정 값들이 쓰여집니다.
이때 처음과 끝에는 항상 시작과 끝을 알리는 문자가 쓰여집니다.(항상 일정한 값)
header와 tail이라고 하겠습니다.
header는 제일 처음 즉, addr[0] 이 겟죠.
하지만 tail은 데이터의 길이에 따라 달라집니다.(데이터의 길이는 일정치 않음)
그래서 배열의 크기가 50이라면
for(int i=0;i50;i++)
배열 전체를 확인 하여 특정 값이 확인되면 check를 하여 데이터의 처음과 끝을 구별하고 싶습니다.
어떻게 보면 엄청 단순한건데 머리가 잘 안돌아 가네요.. 뭔가 체계적으로 소스를 짜고 싶은데 도움을 요청합니다.
* 간혹 header와 tail 사이의 0(NULL)값이 연속해서 들어옴.
-
푸른잎 2023-06-21
header = addr[0];
for (int i = 1; i 50; i++)
{
if (addr[i] == header)
{
break;
}
if (i = 50) { //오류 처리 }
else
{
length = i - 1; // header, tail 제외
}
} -
들빛 2023-06-21
for문을 1 부터 돌리세요.
-
솔로 2023-06-21
알고리즘이 뭔가 거창한거라고 착각하시는거 같은데 밥먹을때 숫가락 들고 밥뜨는 일련의 행위도 알고리즘입니다.
앞 뒤가 완전해야 하면 앞 뒤가 안전할때까지 50회 검사하시고 50회가 끝낫는데 tail이 여전히 등장하지 않았으면 에러로 처리하시면 됩니다. 제 코드에선 sentry_count가 for를 벗어낫는데도 1인 경우가 되겟죠.
좀더 그럴싸해 보이는 복잡한 형태는 본격적인 상태기계를 모방하는 일련의 함수군과 상태 표지 모델인데
다시 쓰지만 이게 더 -
카제 2023-06-21
메모리에 값을 쓸때 header와 tail을 이용해서 전송크기를 알 수 있잖아요? 0x7e의 값이 header와 tail의 값인데 이 양쪽의 값이 정상적으로 들어왓을때 데이터를 쓰게하고 그 외의 상황을 예외처리하고 싶은겁니다. 알고리즘을 만들고 싶은데 ... 더 좋은 방법이 없나요?
-
꽃 2023-06-21
저게 가장 간단한 체계적인 방법입니다. 아니면 head, tail을 다른값으로 만드시던가 렉서마냥 상태기계 만드시면 됩니다.
근데 전자는 입력값을 건들여야 하는거니 기각이고, 후자는 제 코드와 하는일은 같으면서 괜히 코드만 늘어나죠 -
깜찏한그1녀 2023-06-21
int j 해서 j값을 상승시키고 그 값이 2가 되면 빠져나가게끔? 전 조금더 체계적으로 하고 싶어서 그러거든요..
-
Sweet 2023-06-21
그럼 두번째 head가 등장하면 빠져나가면 그만이죠
sentry_count = 0
for i in 0...50
if ary[i] == head
sentry_count += 1
break if sentry_count == 2
endif
do something...
endfor -
다크 2023-06-21
header와 tail값이 같습니다. 님과 같이 하면 header와 tail의 값이 같기 때문에 i의 값은 0이 되겟지요
-
옆집언니야 2023-06-21
for i in 0...50
break if ary[i] == tail
do something...
endfor
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2685477 | 소수점이하 출력하는거요 | 널위해 | 2025-02-18 |
2685449 | printf배우고있는데요 궁금한게있어요 (8) | 꽃큰 | 2025-02-18 |
2685393 | c언어 질문이요.... | 붕붕 | 2025-02-18 |
2685365 | 윈도우7에서 visual studio c++6.0 (1) | 빛길 | 2025-02-17 |
2685317 | segmentation fault가 나요 | 가람 | 2025-02-17 |
2685292 | 다중스택질문 | 올해1살 | 2025-02-17 |
2685231 | C언어와 닷넷에 대해서 질문!! (2) | 설아 | 2025-02-16 |
2685206 | VisualBasic 과 DEV++ 의 장단점과 만든 파일 호환 가능하나요? | 에드워드 | 2025-02-16 |
2685154 | 배열 크기조절 | 해찬솔 | 2025-02-15 |
2685124 | 수정이거 제가 뭐가 잘못한거죠 ? | 아이돌 | 2025-02-15 |
2685096 | 포인터의 고수분들 모두 보세요!! 제발 ㅠ_ㅠ 헷갈려헷갈려..갈려헷.. (7) | 치킨마루 | 2025-02-15 |
2685045 | 전처리기 질문 | 치에미 | 2025-02-14 |
2685016 | 오류 좀 확인해 주시면 감사하겠습니다 | 초코맛사탕 | 2025-02-14 |
2684917 | 알고리즘을 이용한 행렬의 전치// 문제다운 문제네요. | 뿡뿡 | 2025-02-13 |
2684868 | 양방향 연결리스트에서 실행도중 죽는 이유좀 찾아주세요. (2) | 예다움 | 2025-02-13 |
2684844 | 시계프로그램인데 도저히 모르겠어요ㅠ (1) | 비내리던날 | 2025-02-12 |
2684812 | 레포트좀도와주세요ㅠㅠ (2) | 갈매빛 | 2025-02-12 |
2684780 | 채팅창 흉내내보려고하는데요 ㅜ.ㅜ (1) | 바름 | 2025-02-12 |
2684729 | 내일 시험인데 메모리 그리는것좀 도와주세요 ㅠ (1) | 상처주지마 | 2025-02-11 |
2684701 | 버퍼 관련 질문 3가지 (이전거랑 달라요) | 한국녀 | 2025-02-11 |