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. No Image

    iOS 13.5 릴리즈

    iOS 13.5가 릴리즈 되었습니다.   변경사항 iOS 13.5는 얼굴에 마스크를 착용 중일 때 Face ID가 있는 기기에서 암호 필드에 대한 접근 속도를 높이고 공중보건 당국의 COVID-19 접촉 추적 앱을 지원하는 노출 알림 API를 소개합니다. 또...
    Date2020.05.21 소식 Bytitle: AI깍지 Reply5 Views492
    Read More
  2. 윈도우 터미널 정식 버전 발표

    마이크로소프트가 윈도우 터미널의 정식 버전을 발표했습니다. 쉽고 빠르며 효율적이면서도 강력한 커맨드 라인 툴로 유니코드/UTF-8과 GPU 가속 등도 지원합니다. 작년에 발표하고 https://gigglehd.com/gg/4846713 1년만에 정식 버전이 ...
    Date2020.05.21 소식 By낄낄 Reply8 Views952 file
    Read More
  3. 구글 공식 모바일 앱, 다크 모드 추가

    안드로이드와 iOS의 구글 앱에 다크 모드가 추가됩니다. 주말에 해당 기능을 제공하는 버전이 올라갈 듯 합니다.
    Date2020.05.21 소식 By낄낄 Reply0 Views587 file
    Read More
  4. 리눅스용 윈도우 서브시스템에 다이렉트 X 출시 예정

    마이크로소프트가 리눅스용 윈도우 서브시스템에 다이렉트 X API 지원을 추가할 계획입니다. WINE은 다이렉트 3D 명령을 OpenGL로 직접 변환하지만, 마이크로소프트는 다이렉트 X의 실제 인터페이스를 제공해 하드웨어(호스트의 커널 모드...
    Date2020.05.21 소식 By낄낄 Reply2 Views476 file
    Read More
  5. 아이패드용 포토샵, 커브 기능 추가

    포토샵의 아이패드 버전에 커브 기능과 펜 민감도를 설정하는 기능이 추가됐습니다. 포토샵에서 귀찮으니 레벨을 쓴다고 하면 어디 그런 천한 기능을 쓰냐며 버럭하는 디자인쟁이들이 몇명 있었는데.. 이걸 보고 이제야 아이패드 버전을 ...
    Date2020.05.21 소식 By낄낄 Reply1 Views463 file
    Read More
  6. No Image

    블루투스 페어링의 스푸핑 취약점

    블루투스로 장치를 연결할 때는 링크 키를 사용해 두 장치를 페어링합니다. 하지만 공격자가 페어링된 디바이스인것처럼 속여 링크 키를 알지 못해도 페어링하는 취약점이 발견됐습니다. 페어링 방식이 Secure Connection이나 Legacy Secu...
    Date2020.05.21 소식 By낄낄 Reply0 Views307
    Read More
  7. 크롬 보안 기능, 지메일과 구글 드라이브로 확장

    구글 크롬의 새로운 기능들입니다. 원문에는 움짤이 많아서 사진은 한장만 넣었습니다. 세이프티 체크는 크롬의 보안 상태를 확인하는 기능입니다. 크롬 버전, 세이프 브라우징, 위험한 익스텐션의 존재, 유출 가능성이 있는 비밀번호를 ...
    Date2020.05.21 소식 By낄낄 Reply0 Views984 file
    Read More
  8. No Image

    '굿바이' 공인인증서…전자서명법, 국회 본회의 통과

    공인인증서가 21년의 역사를 뒤로 하고 폐지된다. 국회는 20일 본회의를 열고 '공인인증서 폐지'를 골자로 한 전자서명 전부개정법률안을 통과시켰다. (중략) 전자서명 전부개정법률안은 기존 법이 공인인증서에 부여해왔던 지위...
    Date2020.05.20 소식 By낄낄 Reply5 Views433
    Read More
  9. TCP포트 검사 공격 질문입니다.

      E-SET 인터넷 시큐리티 사용중입니다. 근래 들어서 저런 공격탐지 메시지가 자꾸 뜨는데요, 일단 차단되었다고 나오니 큰 걱정은 안하고 있습니다만 왜 이런게 자꾸 나오는 걸까요? 해당 IP주소는 중국이나 폴란드, 네덜란드(스샷의 위...
    Date2020.05.20 질문 Bytitle: AI아즈텍 Reply14 Views1689 file
    Read More
  10. 해외 가상번호 계정에서의 카카오페이 사용

    친구 물리문제 대신 풀어주고 카톡 깊콘 받았는데...       문제는, 지금 제가 쓰는 계정이 해외 가상번호로 생성한 계정이고 실번을 사용한 본계가 따로 있습니다. 그래서 카톡내 전화번호 변경 등의 꼼수를 사용할 수도 없는 노릇이거든...
    Date2020.05.20 질문 By우즈 Reply3 Views1011 file
    Read More
  11. No Image

    지금 KT 해외망 접속 어떠신가요?

    에픽게임즈 GTA5다운로드 속도가 느리긴 합니다 https://gigglehd.com/gg/7332981 요즘 KT 해외망 노답이던데 NTT쪽 문제인가 봅니다. https://gigglehd.com/gg/7329599 하필 반기가랜으로 바꾼 후에 속도가 느려져서 어디가 문제인가 했...
    Date2020.05.20 질문 By낄낄 Reply8 Views1073
    Read More
  12. No Image

    arm 윈도우 10, x64 코드 실행 가능

    arm 아키텍처를 위한 윈도우 10에서 x64 코드 에뮬레이션을 실행할 수 있습니다. 지금까지는 x86 32비트 애플리케이션만 실행할 수 있었습니다. arm 윈도우 10을 운용하는 제품의 활용도가 앞으로 더 넓어질 것 같네요.
    Date2020.05.20 소식 By낄낄 Reply2 Views674
    Read More
  13. No Image

    데이터센터에 침입해 가상화폐를 채굴하는 공격 시도

    영국, 독일, 스위스의 대학교에서 운용하는 데이터센터에 칩입, 가상화폐를 채굴하는 코드를 실행하려던 시도가 적발됐습니다. 영국 애든보러 대학교에서 ARCHER 노드의 보안 취약점을 악용해 칩입했는데, 학교 쪽에서는 SSH 비밀번호를 ...
    Date2020.05.19 소식 By낄낄 Reply2 Views486
    Read More
  14. 윈도우 10의 2004 업데이트, 블루투스 스피커 스트리밍 지원

    윈도우 7에서는 블루투스 A2DP 동기화를 통해 스마트폰의 소리를 컴퓨터 스피커로 스트리밍할 수 있었습니다. 이 기능이 윈도우 10의 5월 업데이트, 버전 2004에서 돌아옵니다.
    Date2020.05.19 소식 By낄낄 Reply8 Views1442 file
    Read More
  15. 어도비 프리미어 프로, NVIDIA NVENC 인코더 지원

    어도비 프리미어 프로의 14.2 버전에서 NVIDIA NVENC를 사용해 인코딩 성능을 CPU보다 5배 더 높일 수 있습니다. 지금까지 어도비 프리미어 프로는 영상의 특수 효과나 내부내기 시간을 줄이기 위해 쉐이더 처리를 활용했으나 NVIDIA의 하...
    Date2020.05.19 소식 By낄낄 Reply0 Views1155 file
    Read More
목록
Board Pagination Prev 1 ... 349 350 351 352 353 354 355 356 357 358 ... 578 Next
/ 578

최근 코멘트 30개
별밤전원주택
02:15
린네
02:14
별밤전원주택
02:13
카에데
02:10
nsys
02:09
빈도
01:58
빈도
01:58
마초코
01:41
이계인
01:40
이계인
01:38
세라프
01:37
냥뇽녕냥
01:36
세라프
01:34
세라프
01:31
니즛
01:31
파팟파파팟
01:30
세라프
01:29
유지니1203
01:29
니즛
01:27
니즛
01:27
포인트 팡팡!
01:19
白夜2ndT
01:19
미야™
01:17
유지니1203
01:17
고자되기
01:13
유지니1203
01:11
GPT
01:08
유지니1203
01:07
아라
00:49
아라
00:49

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

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


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

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


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

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

설치 취소