Skip to content

기글하드웨어기글하드웨어

인터넷 / 소프트웨어 : 윈도우즈, 리눅스, 기타 운영체제, 각종 어플리케이션, 프로그램, 소프트웨어, 인터넷, 인터넷 서비스에 대한 이야기, 소식, 테스트, 정보를 올리는 게시판입니다.

Extra Form

main 함수내에서의 배열이름이 double Array[8];면

 

크기를 구할 때 sizeof(Array)/sizeof(Array[0]) 하면 8이 나오더라구요

 

그래서 이걸이용해서 최솟값을 찾는 곳의 함수에서 쓰고 싶었는데 안나오더라구요

 

main함수내에서는 정상적으로 나오지만

 

Min()함수를 새로 정의하고 최솟값 찾는 함수

 

Min(double x[]){ double find; int i,j,k;

double find=x[0]; k=sizeof(x)/sizeof(x[0])-1;

로 해놓고

 

i=0~k까지에 대한 루프를 돌리려고 했는데 Array라는 배열을 Min함수에 넣어도 sizeof(x)=sizeof(x[0])=8로 나와서 무조건 -1이 나오더라구요

이 Min함수내에서 Array함수의 크기를 알 수 있는 방법 없을까요?

 

굳이 하려면 Min(double x[], int ii)를 받아서 ii를 사전에 미리 main함수에서 sizeof(Array)/sizeof(Array[0])-1 해줘도 될거 같긴한데

 

너무 안깔끔해서요..

 

Min(Array, sizeof(Array)/sizeof(Array[0]-1); 로 불러오기에는 너무..



  • ?
    Φloteer      🤔 2016.09.08 12:36
    그게 함수로 넘어갈 때 포인터로써 넘어가서 array의 size값이 안 넘어갈 겁니다.
    가장 간단한 해결책으로서는 데이터값중 NaN값같은게 나오지 않는 경우 어레이 마지막에 NaN을 추가하고 NaN을 발견할때까지 루프를 돌린다거나 하는 방법이 있기는 한데요.
    다른 (경우에 따라서는 더 좋은) 방법들은 이런 게 있습니다. http://stackoverflow.com/questions/968001/determine-size-of-array-if-passed-to-function

    ..그리고 저는 이래서 그냥 C/C++를 많이 안 씁니다 (.....) 성능이 꼭 필요하지 않은 경우에는 최고의 해결책..
  • profile
    Koasing      PROBLEM? 2016.09.08 12:47
    그게 포인터로 넘어가는 거라서 딱히 방법이 없습니다. 함수 인자로 배열 크기를 같이 넘겨주는 방법뿐이 없습니다. 아니면 구조체나 클래스로 길이 정보를 따로 관리하던지요.
    아니면 배열의 마지막을 나타내는 특수한 값(-1, 0, NULL, NaN 등)을 사용하고, 함수 안에서 이 값을 찾아 계산해야 합니다.
  • profile
    레드팍스 2016.09.08 13:55
    위의 Min() 안에서는
    sizeof(x) == sizeof(double *)
    sizeof(x[0]) == sizeof(double)
    입니다.
    64비트 머신이라 우연(?)히 sizeof(x) == sizeof(x[0]) == 8 이 된 겁니다.
  • profile
    title: 야행성프리지아      Facta, Non Verba 2016.09.08 16:26
    * 적어놓고 보니 piloteer님이 먼저 달아주신 게 있네요. 지우려다가 일단 그냥 둡니다. ㅠㅠ
    ----------------------------

    http://stackoverflow.com/questions/4108313/how-do-i-find-the-length-of-an-array

    여기서 두 번째 답을 참고하시면 되긴 합니다.
    template<typename T, size_t N>
    size_t size(T (&)[N]) { return N; }

    -----
    그러니 원하시는 코드는 아마도,
    template <typename T, size_t N>
    double Min(T (&x)[N])
    {
    //...
    double minX = x[0];
    for (int i = 1; i < N; ++i)
    {
    // ...
    }

    return minX;
    }

    이런 식이 되겠네요.
    (돌려보진 않았습니다.)
  • profile
    title: 야행성프리지아      Facta, Non Verba 2016.09.08 16:27
    물론 이건 저 array가 constant size로 stack에 잡힌 경우만 될 겁니다. 컴파일할 때 맞추는 거라서.
  • profile
    주기율표 2016.09.09 13:51
    프로토타입을 선언하게 될 땐 어떻게 해야 하나요
    template<typename T,size_t N>
    int MinIn(T (&)[N]);
    main(){};
    int MinIn(T (&x)[N]){ double find=x[0]; int i,j;
    for(i=1;N;i++){ if(find>=x[i]){ find=x[i];j=i;}}
    return j;}
    최솟값인 곳의 index를 반환하는 함수예요
    프로토타입부문에 previous declaration of ‘template<class T, long unsigned int N> int MinIn(T (&)[N])’ 라고 오류 뜨고\
    뒤에있는함수 xTN전부 not declared 하다고 하네요.. 왜 그럴까요
  • profile
    title: 야행성프리지아      Facta, Non Verba 2016.09.09 16:10
    함수 definition쪽에도
    template<typename T, size_t N>
    을 넣어주세요.

    그리고
    double find = x[0];

    T find = x[0];
    로 바꾸셔야 할지도 모릅니다.
  • ?
    누나틱알루미나 2016.09.08 17:19
    c++이면 std::vector나 std::array를 쓰시면 됩니다.
  • profile
    벌레쟁이      이젠 울트라뽑는 하이브 2016.09.08 19:58
    x로 넣으면 argument라 포인터겠죠.....는 64비트 컴파일 하신건가!? 8비트라니!?
    global variable이면 그냥 global variable name을 긁어오면 가능함다... 는 뭐하러 인자로 줘!?
    사실 2nd argument로 배열의 크기를 넘기는게 원래 정석입니다.
    sizeof(double) * argument
  • profile
    주기율표 2016.09.08 21:33
    다들 감사합니다
  • ?
    winner 2016.09.10 21:24
    함수는 기본적으로 동적처리인 반면 C++ 에서 배열크기는 정적이라 고민되는 것인데 3가지가 제안되었군요.

    1. 함수에 별도의 매개변수로 배열크기를 같이 넘겨준다.
    2. 배열을 동적으로 만들어서 크기를 묶어서 보낼 수 있는 std::vector 를 사용한다.
    3. 함수를 정적으로 개별화할 수 있는 template 을 사용한다. std::array 를 함께 사용하는 것은 추가적인 편의를 얻을 수 있다.
  • ?
    nsys 2016.09.11 05:03
    날배열 사용 할거면 생각하신 안 깔끔한 방법이 맞는 방법입니다.
    C++ 면 vector 사용하면 됩니다. 퍼포먼스 문제도 없고.
  • ?
    winner 2016.09.11 07:47
    음... 그나저나 세월의 변화를 느끼겠군요.
    Pointer 크기가 8 bytes 라...
  • profile
    주기율표 2016.09.13 09:19
    다시 한 번 감사드립니다

작성된지 4주일이 지난 글에는 새 코멘트를 달 수 없습니다.


  1. GPU-Z, 라데온 RX 6700/6600 지원

    GPU-Z 2.37.0 버전이 나왔습니다. 라데온 RX 6700과 6600, 지포스 RTX 30 모바일 등을 지원합니다. 또 코멧레이크의 내장 그래픽도 추가했습니다.
    Date2021.02.23 소식 By낄낄 Reply1 Views337 file
    Read More
  2. 클럽하우스를 도청하는 앱이 깃허브에서 등장

    클럽하우스를 도청하는 앱이 깃허브에서 등장했습니다. 안드로이드나 PC에서도 쓸 수 있으며, 초대 코드가 없이도 접속 가능한 써드파티 앱입니다. 면피용으로 모든 권한은 개인 세션을 통해 취득했으며, 음성 저작권은 클럽하우스에 있다...
    Date2021.02.22 소식 By낄낄 Reply5 Views1240 file
    Read More
  3. No Image

    안 접속하는 사이트 정리하기 참 귀찮네요

    '로그인 차단기능이 실행됐다'는 메일이 왔습니다. 보낸이는 스토브인데, 메일 생긴 걸 보니 아주 듣보잡은 아니지만 이게 뭐하는 곳인지 도저히 모르겠어서 일단 그 사이트부터 들어가 봤거든요. 예전에 로스트 아크가 한참 흥할...
    Date2021.02.22 일반 By낄낄 Reply3 Views598
    Read More
  4. No Image

    동기화 되는 메모/노트앱 추천 받고싶습니다

    12년도부터 에버노트를 사용 중입니다. 갈 수록 광고도 늘어나고 무료 계정은 동기화 기기가 2개밖에 안돼서 불편하더라고요.   그래서 구글 킵으로 옮기려다가 예전에 써봤을 때 별로였던 기억이 있어서 우선 질문 먼저 올려봅니다. 기기...
    Date2021.02.22 질문 By실핀 Reply11 Views593
    Read More
  5. No Image

    리플 가격조작 직접 지시 - SEC 고소장

    미국 증권거래위원회(SEC)가 리플 경영진의 가격 조작을 고소장에 구체적으로 적시, 피고를 강하게 압박하기 시작했다. SEC가 묘사한 것이 사실이라면 리플은 가격을 인위적으로 끌어올렸다가 되파는 회사 주도의 펌핑 앤 덤핑을 한 것이...
    Date2021.02.22 소식 By낄낄 Reply6 Views1202
    Read More
  6. No Image

    파이썬, 30살이 되다

    귀도 반 로섬(Guido van Rossum, 혹은 히도 판 로쉼)이 크리스마스날 심심해서 자기가 즐겨보던 몬티 파이썬(혹은 몬티 파이튼, Monty Python. 옥스브릿지 출신들이 지금봐도 참 재미있는 걸 만들었죠...)의 이름을 딴 프로그래밍 언어를 ...
    Date2021.02.21 소식 Bytitle: 폭8책읽는달팽 Reply3 Views954
    Read More
  7. 21H1 베타 채널로 들어갔네요

        항상 새걸 쓰는 기분은 좋습니다.   확실히 규모가 매우 작은 업데이트같더군요 다운로드하고 설치하는데 5분 걸렸습니다.
    Date2021.02.20 소식 By록키베어 Reply6 Views862 file
    Read More
  8. No Image

    VSCode, 늙다리들을 맞아들이다.

    비주얼 스튜디오 코드가 늙다리들을 맞아들이게 되었습니다.   VIM 모드가 기본 백로그에 추가되었고, makefile이 공식 확장으로 들어오게 되었습니다.   이전엔 VIM vs Emacs 였었는데, VSCode가 나타나서 다 조져버리네요.
    Date2021.02.19 소식 Bytitle: 폭8책읽는달팽 Reply5 Views1413
    Read More
  9. 크롬 OS 점유율이 맥OS를 넘어섬

    2020년에 크롬 OS 점유율이 맥OS를 처음으로 넘어섰습니다. 1붙기부터 4분기까지 계속 더 높은 점유율을 보였으며, 그 격차도 점점 더 늘어났습니다. 크롬 OS라고 해봤자 크롬북에서만 사용한다고 봐도 되겠는데, 작년 코로나 때문에 재...
    Date2021.02.19 소식 By낄낄 Reply5 Views790 file
    Read More
  10. No Image

    애플 M1 프로세서를 목표로 삼은 악성코드

    애플 M1 프로세서를 목표로 삼은 악성코드가 등장했습니다. 인텔 CPU에서 작동하는 사파리 브라우저의 애드웨어를 애플 실리콘으로 업데이트했다고 하네요. 윈도우에 비해 사용자 수가 많지 않기에 애플은 악성 코드가 많지 않다고 알려져...
    Date2021.02.19 소식 By낄낄 Reply2 Views933
    Read More
  11. No Image

    OFDMA를 끄고 병이 나았습니다.

    최근 인터넷 옮기면서 tplink ax10공유기를 리셋했습니다 다나와 의견란보고 ofdma를 끄니까 훨씬 낫네요. 도대체 이게 뭐죠. 기글에 찾아보니 홍보(필테)뿐... 이게 뭘까요   덧. 저가형 wifi6는 반쪽입니다. 아수스 1900 판거 후회중    
    Date2021.02.19 질문 Bytitle: 명사수SOCOM Reply6 Views944
    Read More
  12. No Image

    요즘은 동영상 플레이어 뭐로 보시나요?

    곰플레이어   KMP   팟플레이어   네이버 시리즈온 플레이어   윈도우 미디어 플레이어   등등 참 많지만 요즘엔 뭐 쓰시는지 궁금합니다.     여담으로 토렌트 프로그램은 뭐 쓰시나요?
    Date2021.02.18 질문 By소망노인복지센터 Reply23 Views3288
    Read More
  13. No Image

    9.9.9.9, 본사를 캘리포니아에서 취리히로 옮기다

    Quad9 가 SWITCH(스위스의 .ch 과 .li를 감독하는 기관)와 더불어 Packet Clearing House의 도움으로 본사를 캘리포니아에서 스위스 취리히로 옮기게 되었습니다. 그렇게 해서 스위스법에 의한(자국인이 아닌 자에게도 한하는) 개인정보 ...
    Date2021.02.18 소식 Bytitle: 폭8책읽는달팽 Reply0 Views854
    Read More
  14. No Image

    MS, '플래시 제거' 업데이트 기기 배포 시작

    마이크로소프트(MS)가 기술지원이 종료된 어도비 플래시 플레이어를 제거하는 업데이트를 윈도 기기에 배포하기 시작했다.   미국지디넷은 플래시를 제거하고, 다시 설치할 수 없게 하는 윈도 업데이트 'KB4577586'을 배포 중이라고 17일(...
    Date2021.02.18 소식 Bytitle: 가난한카토메구미 Reply7 Views935
    Read More
  15. 크롬 OS, 2020년 PC운영체제 점유율 2위 기록

      2020년 PC OS시장에서 크롬OS가 Mac OS를 제치고 2위를 기록하였습니다. 크롬 OS의 점유율은 10.8%, Mac OS의 점유율은 7.5%, 윈도우는 80.5%를 기록했습니다. IDC는 코로나로 인해 원격 수업과 재택근무의 비중이 늘어 크롬 OS의 점유...
    Date2021.02.18 소식 ByDecAF Reply13 Views878 file
    Read More
목록
Board Pagination Prev 1 ... 285 286 287 288 289 290 291 292 293 294 ... 578 Next
/ 578

최근 코멘트 30개
이수용
15:00
조마루감자탕
15:00
조마루감자탕
15:00
애플마티니
14:58
극한
14:56
AKG-3
14:52
까마귀
14:52
까마귀
14:50
까마귀
14:49
고자되기
14:47
린네
14:46
카토메구미
14:41
파란화면
14:41
까마귀
14:38
ExyKnox
14:38
아이들링
14:37
고자되기
14:36
폴짝쥐
14:34
파란화면
14:30
야생감귤
14:29
카토메구미
14:29
야생감귤
14:29
AiryNyan
14:28
야생감귤
14:27
야생감귤
14:26
피자피자
14:24
까마귀
14:22
까마귀
14:21
카토메구미
14:21
까르르
14:20

한미마이크로닉스
MSI 코리아
더함
AMD

공지사항        사이트 약관        개인정보취급방침       신고와 건의


기글하드웨어는 2006년 6월 28일에 개설된 컴퓨터, 하드웨어, 모바일, 스마트폰, 게임, 소프트웨어, 디지털 카메라 관련 뉴스와 정보, 사용기를 공유하는 커뮤니티 사이트입니다.
개인 정보 보호, 개인 및 단체의 권리 침해, 사이트 운영, 관리, 제휴와 광고 관련 문의는 이메일로 보내주세요. 관리자 이메일

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소