배열 첫,끝 구분하기 질문드립니다.
초코향
안녕하세요. 배열을 이용해서 예외처리를 하려고 하는데 잘안되네요.
바로 질문들어 가겠습니다.
배열을 선언하고 배열에 특정 값들이 쓰여집니다.
이때 처음과 끝에는 항상 시작과 끝을 알리는 문자가 쓰여집니다.(항상 일정한 값)
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
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2692114 | 컨텍스트 스위칭하는데 걸리는 시간 측정.. | YourWay | 2025-04-19 |
2692086 | 간접참조 연산자, 증감연산자 질문이용! (2) | 블랙캣 | 2025-04-19 |
2692056 | 주석좀 달아주세요. 몇개적엇는데 몇개만달아주세요. (2) | DevilsTears | 2025-04-19 |
2691978 | 진수 쉽게 이해하는법... (3) | 지지않는 | 2025-04-18 |
2691949 | getchar() 한 문자를 입력받는 함수 질문 | 채꽃 | 2025-04-18 |
2691919 | 배열 정렬 및 합치기 질문입니다. | 사과 | 2025-04-18 |
2691845 | c언어왕초보 질문이 있습니다........ | 루나 | 2025-04-17 |
2691815 | void add(int num); 함수... (4) | 살랑살랑 | 2025-04-17 |
2691756 | 명령 프롬프트 스크롤바가 없어요 | 두메꽃 | 2025-04-16 |
2691725 | 자료구조에 관련해서 질문이 있어 글을 올립니다. | 누리알찬 | 2025-04-16 |
2691697 | if 문에서 구조체 배열에 저장되있던 문자열 검사하는 법 ? (2) | 민트맛사탕 | 2025-04-16 |
2691678 | C언어 함수 질문이요~!!! | 연보라 | 2025-04-15 |
2691650 | 반복문 | 돋가이 | 2025-04-15 |
2691618 | 링크드리스트 개념 질문이예요 (3) | 맨마루 | 2025-04-15 |
2691592 | 동적할당 이용 배열선언 질문입니다.ㅠㅠ (3) | 허리달 | 2025-04-15 |
2691542 | /=의 용도를 알려주세요 ㅠㅠ! (2) | 아라 | 2025-04-14 |
2691510 | sizeof 연산자 질문입니다 (2) | 종달 | 2025-04-14 |
2691483 | 파일 오픈시 에러 질문드립니다. (2) | 호습다 | 2025-04-14 |
2691450 | [visual c++ 툴]기초 질문 (3) | 해긴 | 2025-04-13 |
2691393 | UNIX 시스템을 사용하려면 어떤 프로그램이 좋을까요? (5) | 든솔 | 2025-04-13 |