scanf에 제가 쓴 string을 다른 함수에 전달하고 싶습니다.
링고
간절히 궁금합니다 ㅠㅠ 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
제가 어디를 놓치고 있는건가요 도와주세요ㅠㅠ
-
하양이 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* 입니다
당연히 대입이 안될 수 밖에요
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2668615 | 2차방정식 근 구하는 프로그램 질문입니당 ㅠ (1) | 삐용삐용 | 2024-09-16 |
2668560 | fgets함수 출력할때.. | 민트맛사탕 | 2024-09-16 |
2668508 | c언어 공부법~~ | 옆집오빠야 | 2024-09-15 |
2668460 | 2차원배열 사용자정의 함수이용하여 동적할당 (1) | 울트라 | 2024-09-15 |
2668434 | 반석차랑 전체석차 어케 구하죠? | 내꺼하자 | 2024-09-15 |
2668412 | return 용도 | 유리 | 2024-09-14 |
2668383 | 열혈강의C 연산자 연습문제 관해서 질문드려요. (1) | 흰추위 | 2024-09-14 |
2668329 | 게임의 제작 방법과 소스를 어떻게 알 수 있을까요? | 꽃내 | 2024-09-14 |
2668301 | do while질문이요 | 댓걸 | 2024-09-13 |
2668223 | C 언어 도와주세요 ..ㅜ.ㅜ (1) | 제나 | 2024-09-13 |
2668126 | B 트리에 삽입에 대해 질문이 있습니다. | 이하얀 | 2024-09-12 |
2668097 | 포인터와 배열 질문입니다 ;~; (3) | 흰추위 | 2024-09-11 |
2668073 | C언어 질문요. (3) | 횃불 | 2024-09-11 |
2668022 | 링크드리스트 정렬 질문이에욤 | 단순드립 | 2024-09-11 |
2667968 | 오늘 마감인데...오류좀 찾아주세요 ㅜㅜ (2) | 갈매빛 | 2024-09-10 |
2667940 | C언어 하수가 질문드립니다 ㅠㅠ | 이솔 | 2024-09-10 |
2667906 | 논리연산자 문제.. (1) | 칸나 | 2024-09-10 |
2667879 | 간단한 배열 질문 | 호시 | 2024-09-09 |
2667850 | 소수를 판단하는 함수를 정의하는 프로그램 (1) | 인1형녀 | 2024-09-09 |
2667826 | #define 중에 첨보는 구문질문 | 냐하 | 2024-09-09 |