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. 이케아 회사 메일이 계속해서 털리는 중

    이케아 회사 메일 시스템이 해킹돼 이케아 직원들에게 계속해서 피싱 메일이 발송 중이라고 합니다. 프록시쉘과 프록시로그인 취약점을 악용해 MS 익스체인지 서버를 공격했다고 하네요. 이케아는 피싱 메일이 어떤 형식으로 발송되는지 ...
    Date2021.11.30 소식 By낄낄 Reply0 Views887 file
    Read More
  2. No Image

    인텔 그래픽 드라이버

    요즘 세상에 윈도우10을 x86으로 사용하는 곳이 있어 이래저래 골칫거리네요 시퓨가 i5-8500이고 칩셋이나 다른 건 드라이버를 잡았는데 그래픽은 드라이버를 구할수가 없네요 인텔에서도 공식적으로 드라이버 지원 하지 않는거 같고.. 외...
    Date2021.11.30 일반 By두리 Reply5 Views2609
    Read More
  3. ASUS ROG Rapture GT-AX6000 공유기

    ASUS ROG Rapture GT-AX6000 공유기입니다. 2.5기가비트 WAN/LAN x1, 2.5기가비트 랜 x1, 기가비트 랜 x4, USB 3.2 Gen.1 x1, USB 2.0 x1. 802.11ax 무선랜으로 WiFi-6, 2.4GHz 대역에서 1148Mbps, 5GHz에서 4804Mbps 듀얼 밴드 지원. 브...
    Date2021.11.30 소식 By낄낄 Reply4 Views820 file
    Read More
  4. No Image

    지금부터 흑우 투표를 진행하도록 하겠습니다.

      소인의 농협 계좌에 총 240만냥이 있사옵니다만, VM 웨어 블랙 프라이데이 40% 할인을 살까 말까 고민하다 결국 끝나버리고 사이버데이 30% 할인 밖에 남지 않았사옵니다.   지금 3년어치를 사게 된다면 VM 웨어 19 버전이 나올때까지 ...
    Date2021.11.29 질문 By록키베어 Reply9 Views2198
    Read More
  5. No Image

    스웨덴, EU에 가상화폐 채굴 금지를 촉구

    스웨덴 금융감독청과 환경보호청의 사무총장은 공개 편지를 통해 가상화폐의 사회적 장점이 있는지 의심스럽다며, 가상화폐가 소비자들에게 위험하며 범죄 목적으로 많이 사용하고 채굴 과정에 온실 가스를 대량으로 배출한다고 주장했습...
    Date2021.11.28 소식 By낄낄 Reply17 Views1118
    Read More
  6. 월페이퍼 엔진 안드로이드 앱 출시

      Wallpaper Engine 2.0이 출시되며 무료 안드로이드 앱도 공개되었습니다. PC버전 Wallpaper Engine을 구매하지 않아도 사용할 수 있습니다.     배경화면과 실시간 상호작용이 가능하고, 자이로 스코프, 소리에도 반응하는 배경화면을 ...
    Date2021.11.27 소식 ByDecAF Reply10 Views2323 file
    Read More
  7. No Image

    애플/구글, 동의 없이 개인 정보를 상업적으로 사용했다며 이탈리아에서 벌금

    애플과 구글이 명확한 동의를 구하지 않고 상업적인 목적으로 사용자 데이터를 사용했다는 이유로 이탈리아 정부에서 1천만 유로의 벌금을 부과 받았습니다. 애플이 앱 스토어, 아이튠스 스토어, 애플 북 등을 통해 수집한 사용자 데이터...
    Date2021.11.27 소식 By낄낄 Reply1 Views681
    Read More
  8. No Image

    프랑스 정부, 검색 엔진에서 중국 제품을 주로 판매하는 사이트를 차단 요청

    Wish는 유럽의 고객을 대상으로 운영되는 인터넷 쇼핑몰입니다. 판매자는 대부분 중국이고, 중국의 제품이 유럽까지 배송되지요. 유럽의 알리 익스프레스 같은 곳이라고 생각하시면 되겠습니다. 프랑스 소비자 경쟁 정책 총무부는 이 사이...
    Date2021.11.27 소식 By낄낄 Reply8 Views916
    Read More
  9. No Image

    Apple, 국가 후원 스파이웨어 남용 방지 위해 NSO Group에 대한 소송 제기

    Apple 오늘 NSO Group 및 모기업을 상대로 Apple 사용자를 표적으로 삼고 감시한 행위에 대해 책임을 묻기 위한 소송을 제기했다. 소송장은 NSO Group이 자사의 Pegasus 스파이웨어로 피해자의 기기를 감염시킨 방식에 관한 새로운 정보를...
    Date2021.11.27 소식 By낄낄 Reply0 Views1253
    Read More
  10. No Image

    독일, 속도가 느린 인터넷 사업자에게 가격 할인을 강제

    속도가 느린 인터넷 서비스 제공자에게 가격 할인을 강제하는 법안이 독일에서 통과, 12월부터 시행됩니다. 독일의 전기통신법 개정 초안에 따르면 사용자가 독일 연방 네트워크청이 제공하는 공식 측정 앱을 사용, 2일 동안 연속으로 20...
    Date2021.11.27 소식 By낄낄 Reply3 Views763
    Read More
  11. No Image

    코리아센터, 국내 1세대 이커머스 '다나와' 인수…인수가 약 4천억원

    1세대 e커머스 ‘다나와’ 인수전 불꽃 https://gigglehd.com/gg/soft/11237122   코리아센터는 오늘(26일) 다나와 경영권 인수를 위한 주식매매계약(SPA)을 체결했다고 공시했습니다. 인수 대상은 성장현 다나와 이사회 의장 등 특수관계인...
    Date2021.11.26 소식 By센트레아 Reply13 Views1884
    Read More
  12. 여러줄에 html 태그 일괄추가? 할 방법을 찾습니다...

    ~~ <body> <p>문장1번입니다.</p>   문장 2번입니다.   문장 3번입니다?   문장 4번<> 입니다.   </body> ~~   이런 텍스트가 있을 때, 문장 2, 3, 4를 문장 1번처럼 앞뒤를 paragraph 태그로 감싸고 싶습니다.   <p>문장 2번입니다.</p> ...
    Date2021.11.26 질문 ByDogPig__ Reply17 Views2065 file
    Read More
  13. No Image

    SK SSD 마이그레이션

    하드에서 SSD로 마이그레이션을 해야 하는데 하이닉스 제품(SATA)이네요 삼성은 마이그레이션 툴 속도가 엄청 빠르다고 들어서 여러대를 작업해야 하는 상황이라 삼성이기를 바랬건만..ㅠ SK 마이그레이션 다운 페이지를 들어가보니 낯익...
    Date2021.11.26 질문 By두리 Reply4 Views2567
    Read More
  14. No Image

    윈도우 인스톨러의 제로데이 취약점

    윈도우 인스톨러의 제로데이 취약점이 지난 일요일에 공개됐습니다. 사용자 권한을 시스템 레벨까지 높일 수 있으며, 최신 버전으로 패치된 윈도우 11과 윈도우 서버 2022까지 모든 버전에서 작동합니다. https://github.com/klinix5/Inst...
    Date2021.11.26 소식 By낄낄 Reply1 Views682
    Read More
  15. No Image

    넷기어 펌웨어 지원이 종료된 Netgear 공유기 목록 2021 11월 업뎃합니다.

    지난번에 넷기어 펌웨어 지원 만료 목록을 올렸는데... 2주 사이 대량 업데이트가 되었습니다. 특히 신규목록과 v2 버전 종료가 많이 늘었습니다. ( 그리고 제 구형 공유기도 펌웨어 지원서 사망... 흑흑 )   * 2021년 11월 말 기준으로 ...
    Date2021.11.26 소식 By가로수 Reply6 Views669
    Read More
목록
Board Pagination Prev 1 ... 208 209 210 211 212 213 214 215 216 217 ... 577 Next
/ 577

최근 코멘트 30개
카토메구미
10:59
록군
10:58
프로리뷰어
10:46
아이들링
10:46
Normie
10:45
PAIMON
10:44
미쿠미쿠
10:40
아이들링
10:39
quadro_dcc
10:29
코디응
10:29
quadro_dcc
10:28
PAIMON
10:23
360Ghz
10:16
GPT
10:12
GPT
10:12
나드리
09:47
툴라
09:42
람jae
09:42
툴라
09:37
유지니1203
09:35
유지니1203
09:34
므시므시
09:21
유니
09:00
카토메구미
08:59
포인트 팡팡!
08:50
하드매냐
08:43
고자되기
08:43
MUGEN
08:33
Pineapple
08:31
Yukirena
08:24

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

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


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

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


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

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

설치 취소