수다닷컴

  • 해외여행
    • 괌
    • 태국
    • 유럽
    • 일본
    • 필리핀
    • 미국
    • 중국
    • 기타여행
    • 싱가폴
  • 건강
    • 다이어트
    • 당뇨
    • 헬스
    • 건강음식
    • 건강기타
  • 컴퓨터
    • 프로그램 개발일반
    • C언어
    • 비주얼베이직
  • 결혼생활
    • 출산/육아
    • 결혼준비
    • 엄마이야기방
  • 일상생활
    • 면접
    • 취업
    • 진로선택
  • 교육
    • 교육일반
    • 아이교육
    • 토익
    • 해외연수
    • 영어
  • 취미생활
    • 음악
    • 자전거
    • 수영
    • 바이크
    • 축구
  • 기타
    • 강아지
    • 제주도여행
    • 국내여행
    • 기타일상
    • 애플
    • 휴대폰관련
  • 프로그램 개발일반
  • C언어
  • 비주얼베이직

scanf에 제가 쓴 string을 다른 함수에 전달하고 싶습니다.

링고

2024.09.06

간절히 궁금합니다 ㅠㅠ scanf에 제가 쓴 string을 다른 함수에 전달하고 싶습니다.순환 큐에서 인큐에 그렇게 넣고 싶은 상황이에요곧, 위 그림처럼 8byte가 할당된 공간에 김태희가 써져야해요.근데 진짜 너무 안되네요 ㅠㅠ코드는 아래와 같은데 주석도 실었습니다 도와주세요 제가 모르는 부분은 다음과 같아요

//main 함수 부분입니다. 이름은 CircularQueueMain.c
#include stdio.h
#include CircularQueue.h
int main(void)
{
// Queue의 생성 및 초기화 ///////
Queue q;
char str[8]; //잘 쓴거 같은데 8바이트할당하였구요.. 9바이트 안해도 됩니다 8바이트에요 ^^ 널 문자 포함해서 그냥 8바이트요..

QueueInit(&q); //처음에 큐 초기화 해주구요

printf(이름을 입력해 ^^ : );
scanf(%s,str); // 잘쓴거 같아요 왜냐면 문자열은 첫 주소값을 전달하고 배열도 곧 포인터니까 &없이 str만 잘 쓴거 같아요
Enqueue(&q, str); //근데 여기가 문제에요 ㅠㅠ
printf(%s , Dequeue(&q)); //이거 하면 띄워져야 정상인데 안띄워지구요 ㅠ
/*
// 데이터 넣기 ///////
Enqueue(&q, 1); Enqueue(&q, 2);
Enqueue(&q, 3); Enqueue(&q, 4);
Enqueue(&q, 5);
// 데이터 꺼내기 ///////
while(!QIsEmpty(&q))
printf(%d , Dequeue(&q));
*/
return 0;
}

///// CircularQueue.c
#include stdio.h
#include stdlib.h
#include CircularQueue.h
void QueueInit(Queue * pq)
{
pq-front = 0;
pq-rear = 0;
}
int QIsEmpty(Queue * pq)
{
if(pq-front == pq-rear)
return TRUE;
else
return FALSE;
}
int NextPosIdx(int pos)
{
if(pos == QUE_LEN-1)
return 0;
else
return pos+1;
}
void Enqueue(Queue * pq, Data* data) //여기를 그래서 배열을 받을 수 있게 Data* data라고 했구요, Data는 char에요.
{
if(NextPosIdx(pq-rear) == pq-front)
{
printf(Queue Memory Error!);
exit(-1);
}
pq-rear = NextPosIdx(pq-rear);
pq-queArr[pq-rear] = data; // 근데 =가 빨간색 밑줄이 떠요... 하 ㅠㅠ 왜 이유를 모르겠어요 ㅠㅠ 진짜 ㅠㅠ 괴로워요
}
Data Dequeue(Queue * pq)
{
if(QIsEmpty(pq))
{
printf(Queue Memory Error!);
exit(-1);
}
pq-front = NextPosIdx(pq-front);
return pq-queArr[pq-front];
}
Data QPeek(Queue * pq)
{
if(QIsEmpty(pq))
{
printf(Queue Memory Error!);
exit(-1);
}
return pq-queArr[NextPosIdx(pq-front)];
}

//CircularQueue.h
#ifndef __C_QUEUE_H__
#define __C_QUEUE_H__
#define TRUE1
#define FALSE0
#define QUE_LEN5
typedef char Data; // typedef int Data; 인 것을 typedef char Data;로 바꾼 상황.
typedef struct _cQueue
{
int front;
int rear;
Data queArr[QUE_LEN+1];
} CQueue;
typedef CQueue Queue;
void QueueInit(Queue * pq);
int QIsEmpty(Queue * pq);
void Enqueue(Queue * pq, Data data);
Data Dequeue(Queue * pq);
Data QPeek(Queue * pq);
#endif
제가 어디를 놓치고 있는건가요 도와주세요ㅠㅠ

신청하기





COMMENT

댓글을 입력해주세요. 비속어와 욕설은 삼가해주세요.

  • 하양이 2024-09-06

    네 감사합니다 해볼게여

  • 알프레드 2024-09-06

    당연히 에러가 날 수 밖에 없죠.

    반환형이 char형이니까 char*형으로 다 바꿔야할 뿐 더러.

    문자열을 저장하는 방법도 바껴야할 겁니다.

  • Sweeety 2024-09-06

    디큐 함수 쪽 pq입니다

    그 밑 큐픽도요..

  • 소미 2024-09-06

    typedef struct _cQueue
    {
    int front;
    int rear;
    Data* queArr[QUE_LEN+1];
    } CQueue;

    로 바꾸면 pq에서 빨간줄이 뜹니다...

  • 맑은누리 2024-09-06

    대입할 때 좌변값은 char고 우변값은 char* 입니다

    당연히 대입이 안될 수 밖에요

번호 제 목 글쓴이 날짜
2700426 인터넷 창 띄우는 질문이요 (1) 정훈 2025-07-04
2700400 원넓이를 계산이요 ㅜㅜ 천칭자리 2025-07-04
2700368 if에 관해서 질문이요... Orange 2025-07-04
2700339 이거 결과값이 왜이런건지.. (4) 그댸와나 2025-07-04
2700313 파일 읽어서 저장하는데 빈파일일 경우 문재가 발생하네요.. (2) 크나 2025-07-03
2700287 구조체 동적할당 연습을 하는데 오류가 뜹니다...(해결) (3) 아련나래 2025-07-03
2700264 문자와 숫자 동시에 입력??? 글고운 2025-07-03
2700236 txt파일로만 쓰고 읽게 하려면 어떻게 해야 하나요..?? (8) 미국녀 2025-07-03
2700211 전위 연산자 (2) 어른처럼 2025-07-02
2700183 C에서 파일이름을 받고, 그 파일의 사이즈를 출력해줘야하는데 내용이 출력이 안되네요 ;ㅅ; 피스케스 2025-07-02
2700150 꼭좀 도와주세요ㅠㅠㅠ 호습다 2025-07-02
2700095 연산문제...질문... 오빤테앵겨 2025-07-01
2700070 while문 , 3의배수 출력하는 프로그램좀 짜주세욤. 횃불 2025-07-01
2700041 초보인데요 ㅎ 배열안에 배열을 집어넣을수 있나요?? 헛장사 2025-07-01
2700012 배열// (1) 전갈자리 2025-07-01
2699895 무한루프에 빠집니다.!! 해결좀부탁드려요 (10) 선아 2025-06-30
2699842 질문을 너무 많이 하네여.....죄송.... (2) 해님꽃 2025-06-29
2699816 오류 질문입니다.. (1) 해비치 2025-06-29
2699763 질문입니다 ! 꼭 좀 도와주세요ㅠㅠ (2) 미라 2025-06-28
2699555 c언어 다항식을 입력을 했는데 왜 출력이 안될까요? 피스케스 2025-06-27
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

수다닷컴 | 여러분과 함께하는 수다토크 커뮤니티 수다닷컴에 오신것을 환영합니다.
사업자등록번호 : 117-07-92748 상호 : 진달래여행사 대표자 : 명현재 서울시 강서구 방화동 890번지 푸르지오 107동 306호
copyright 2011 게시글 삭제 및 기타 문의 : clairacademy@naver.com