PGR21.com
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
Date 2009/03/25 09:13:07
Name RunDavid
Subject C pointer 에 대한 질문
왜 안되는지 전혀 모르겠네요 ^^;

==========================
main.c 파일
==========================
#include "factor.h"
#include "stdio.h"

int main()
{        
        int        result, *ans;
        long long number, *rest;

        ans = malloc(128);
        rest = malloc(128);

        number = 1000;
        result = factor(number, *ans, *rest);

        free(ans);
        free(rest);

        return 0;
}


==========================
factor.c 파일
==========================
#include "factor.h"
#include "stdio.h"
#include "math.h"

int factor(long long n, int *ans, long long *rest)
{
        int factor, power, index;

        index = 0;
        power = 0;
        factor = 2;

        ans[index] = factor;  /////////////// 이 부분에서 에러가 나네요.
        ans[index+1] = power; /////////////// 이 부분에서 에러가 나네요.

        return 0;
}

==========================
factor.h 파일
==========================
int factor(long long n, int *ans, long long *rest);


==========================================================================

제가 구현하고자 하는 부분은 factor.c 의 int factor(long long n, int *ans, long long *rest) 함수입니다.
int factor 함수 안에 파라미터들은 long long n, int *ans, long long *rest 로 넘어오게 되어있고
저는 n 의 factor 들을 계산하여 ans 와 rest 에 넣어야 하는데... 일단 그건 둘째치고

        ans[index] = factor;  /////////////// 이 부분에서 에러가 나네요.
        ans[index+1] = power; /////////////// 이 부분에서 에러가 나네요.

위 두 줄이 외 안되는지 잘 이해가 안되네요
흠... 지난번 예제는 이런식으로 했던것 같은데... 뭔지 모르겠네요...


포인터의 개념을 독학으로 잡으려 하는데 조금 이해하기 힘드네요.
새로운 예제를 접할때마다 제가 완벽하게 이해하지 못했다는것만 계속 깨닿게 됩니다.
어떻게 해야 정벅할 수 있을까요 ㅠㅠ


답변 감사드립니다.

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
고지를향하여
09/03/25 09:59
수정 아이콘
함수명이 factor 인데 변수명도 factor이네요..
고지를향하여
09/03/25 10:00
수정 아이콘
result = factor(number, *ans, *rest);
에서 *이 아니라.. 주소값을 넘겨주는거니 &를 쓰셔야.
RunDavid
09/03/25 10:55
수정 아이콘
아... 그런거였군요 =_=

저.. 한가지 더 질문드리겠습니다.
C array 에서는 마지막에 null 을 집어 넣어야 된다고 했던것 같은데

ans 라는 int array 에 모든 값들을 다 집어 넣은후
마지막을 가리키기 위해 ans[index+1] 에 어떤 값을 넣어주어야 하는건가요?
고지를향하여님//
09/03/25 11:04
수정 아이콘
RunDavid님// 지금 제가 비몽사몽[?]해서 대충만 이야기해보면..
마지막에 null 값을 위해서 자리를 한 칸 더 비워두는건 문자열입니다.
integer 배열은 안넣어주셔도 되구요, ans[index+1] 이런 값 호출하면 아마 에러날겁니다. 없는 곳이니까요.
jinhosama
09/03/25 11:25
수정 아이콘
고지를향하여님// result = factor(number, ans, rest); 이게 아닌가요?
고지를향하여
09/03/25 11:39
수정 아이콘
jinhosama님//
함수가 주소값을 받느냐, 그냥 변수값을 받느냐에 따라서 &가 붙고 안 붙고 차이가 나고
int factor(long long n, int *ans, long long *rest);
로 선언되어있기 때문에 첫번째 인자는 그냥 변수값 (number)를 주고
두번째, 세번째 인자는 주소값 &ans, &rest를 주는게 맞습니다.


그리고 int Array는 마지막에 값 안 넣어도 되고
ans array자체를 128를 잡아놨기 때문애 index+1 호출해도 에러나지 않습니다.
단 ans[128/sizeof(int)] 크기부터는 호출하면 에러가 발생합니다.
jinhosama
09/03/25 11:47
수정 아이콘
고지를향하여님//
ans 자체가 주소인데요..
09/03/25 12:10
수정 아이콘
고지를향하여님//
1. int array에서 배열 이름은 첫번째 공간을 가리키는 주소이긴 합니다만... 뭐 어떻게 쓰든 관계는 없는 것으로 알고 있습니다.
2. index+1은 분명히 논리적으로 위험합니다. 체크를 해 주어야겠지요.
고지를향하여
09/03/25 14:19
수정 아이콘
어 죄송해요 착각했네요....
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
52677 '디비 자라'를 영어로 번역하면... [24] 리콜한방10726 09/03/25 10726
52676 적금 및 재테크 관련 문의 입니다. [3] 이쥴레이2199 09/03/25 2199
52675 동영상 퍼가기에 대해서 [2] 이장희2106 09/03/25 2106
52674 폰 추천...w5200 vs ku1700 Different2132 09/03/25 2132
52673 영화 제목을 알고 싶어서 질문 올립니다. [4] 미남주인2089 09/03/25 2089
52672 클래식 곡 추천 부탁드립니다. [2] 키무진김1575 09/03/25 1575
52671 하이엔드 디카 추천바랍니다. [9] 은유2108 09/03/25 2108
52669 무선인터넷 몰래쓰기 말이죠.. [6] Galatico_3100 09/03/25 3100
52668 3회이상 우승한 선수들의 상대종족을 알고 싶네요 [6] happyend2312 09/03/25 2312
52667 070인터넷전화쓰시는분들께 질문요 [3] schizophrenic2175 09/03/25 2175
52666 트레이드 vs 트랜스퍼 [1] SaiNT2113 09/03/25 2113
52664 학원 수업 방법에 대한 질문입니다. [2] HiddenBox2112 09/03/25 2112
52663 삼성 mp3 추천좀 해주세요. [7] run to you2371 09/03/25 2371
52662 부산에 회계원리학원이 있나요? [1] 새벽공기2266 09/03/25 2266
52661 저작권법위반으로 질문좀 드립니다 [1] 김민규2026 09/03/25 2026
52660 Vista OS에서 프로그래밍 관련 [2] 연이..1659 09/03/25 1659
52659 자꾸 재부팅 되는 현상 - 이런 상황에서는 메인보드 교체?? [6] LUDWIG1902 09/03/25 1902
52658 청바지 빨래에 관해서... [11] 나를찾아서3494 09/03/25 3494
52657 C pointer 에 대한 질문 [9] RunDavid1636 09/03/25 1636
52656 문서 출력용 프린트 모델 좀 추천해주세요. [2] 풋내기나그네1835 09/03/25 1835
52655 nc10 가격이 떨어질까요? [4] phoe菲2174 09/03/25 2174
52654 화학에서 결합각 질문.. [2] 2094 09/03/25 2094
52652 예방 접종 날짜 확인..? [2] 트리티1771 09/03/25 1771
목록 이전 다음
댓글

+ : 최근 6시간내에 달린 댓글
+ : 최근 12시간내에 달린 댓글
맨 위로