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

    코로나 때문에 MS 서비스 사용율이 775% 증가

    신종 코로나 바이러스 때문에 마이크로소프트의 서비스 사용율이 775% 늘었다고 합니다. Teams는 하루 사용자가 4400만명 이상, 매일 진행되는 회의는 9억분입니다. 윈도우 가상 데스크탑 이용은 3배, Power BI를 사용한 코로나 관련 대시...
    Date2020.03.30 소식 By낄낄 Reply0 Views374
    Read More
  2. No Image

    구글, 올해는 만우절 장난을 하지 않는걸로 추정

    네이버 파파고를 이용해 번역해서 자연스럽지 않을 수 있습니다.   -----------------------------------------------------------------------------------------------------   The Verge(https://www.theverge.com/2020/3/27/21197260/...
    Date2020.03.30 소식 ByPixel Reply5 Views839
    Read More
  3. answers.microsoft.com 사이트가 제대로 작동하지 않습니다.

      (크롬, 크로미움 엣지, EdgeHTML 엣지와 IE로 테스트해봤습니다.) 현재 제 컴퓨터입니다. 어떤 브라우저든 answers.microsoft.com에 들어가면 사이트가 저렇게 망가져 버리네요. 핸드폰이나 다른 컴퓨터로 들어가면 잘 됩니다. 확장기...
    Date2020.03.29 질문 By아수슨스브 Reply5 Views428 file
    Read More
  4. No Image

    유튭 보다가 이런거 보고 궁금해서 그런데요

      캔 자르지말고 알루미늄 호일 잘라서 써도 될까요?  
    Date2020.03.29 질문 By그뉵미남좌식 Reply6 Views742
    Read More
  5. No Image

    방주에 보안능력 강화를 위한 뻘짓들..

    요세 사건사고로 인해 방주안 내용이 위험할수도 있어서 죽자살자 싶은심정으로 방주 보안강화에 신경쓰고있습니다.. 누가 접속하지도 않겠지만 FTP 익명접속 허용한걸 거부 했고   일부 풀더 는 원격에서 관리자 권한 만 특정풀더에 접속...
    Date2020.03.28 일반 Bytitle: 명사수poin_:D Reply7 Views957
    Read More
  6. No Image

    애플 파이널 컷 프로 X, 로직 프로 X 체험 기간 일시 연장

    애플은 영상 편집 소프트웨어 Final Cut Pro X(파이널 컷 프로 텐)과 음향·음악 소프트웨어 Logic Pro X(로직 프로 텐)의 체험 기간을 일시적으로 90일간 제공하기로 했습니다. 파이널 컷 프로는 기존의 30일에서 연장된 것이며, 로직 프...
    Date2020.03.27 소식 By이견 Reply3 Views765
    Read More
  7. iOS용 Zoom이 모든 사용자의 데이터를 페이스북에 전송

        원격 화상 회의 서비스 Zoom의 iOS 앱이 페이스북 계정이 없어도 사용자 데이터를 페이스북에 전송한 것으로 확인되었습니다.   사용자가 iOS용 줌 앱을 열면 페이스북 계정의 유무와 무관하게 기기, 시간대와 도시, 통신사, 광고 식...
    Date2020.03.27 소식 By이견 Reply3 Views951 file
    Read More
  8. 라우터 DNS를 납치, 코로나 19 정보를 가장한 악성코드

    라우터의 DNS 정보를 납치해 악성코드를 다운로드받게 하고 패스워드를 훔치는 악성코드입니다. 주요 공격 대상은 링크시스의 라우터로, DNS 정보를 수정해 aws.amazon.com, goo.gl, bit.ly를 비롯한 14종의 도메인에 접속하려 하면 다른 ...
    Date2020.03.27 소식 By낄낄 Reply2 Views687 file
    Read More
  9. No Image

    코로나 19 분석에 참여한 폴딩앳홈 연산 성능이 1엑사플롭스를 초과

    폴딩앳홈에서 진행중인 코로나 19 바이러스의 분석에 참여한 연산 성능이 1엑사플롭스를 넘어섰습니다. 전세계에서 가장 빠른 슈퍼컴퓨터 서밋이 149페타플롭스니까 그거의 10배, 슈퍼컴퓨터 순위 1위부터 100위까지를 모두 더한 것보다도...
    Date2020.03.27 소식 By낄낄 Reply3 Views658
    Read More
  10. 스포티파이 진짜로 한국서비스하나 보네요.

        스포티파이코리아 설립 https://gigglehd.com/gg/soft/6903320 글을 보고 스포티파이 접속했는데   더 이상 VPN 요구 안하고 한글로 나오네요.     외국노래도 나오고     옛날 노래도 나오고       나름 최신노래도 나옵니다.     ...
    Date2020.03.26 일반 Bytitle: AI깍지 Reply5 Views1749 file
    Read More
  11. No Image

    어도비 크리에이티브 클라우드, 모든 파일을 삭제하는 취약점 해결

    어도비는 윈도우용 어도비 크리에이티브 클라우드 데스크탑 애플리케이션 버전 5.0에 존재하는 Time-of-check to time-of-use race condition (CVE-2020- 3808)을 수정하는 패치를 발표했습니다. Time-of-check to time-of-use (TOCTOU) ...
    Date2020.03.26 소식 By낄낄 Reply0 Views826
    Read More
  12. No Image

    윈도우 10, 5월에 일부 업데이트 일시 정지

    마이크로소프트는 2020년 5월에 윈도우 10의 일부 업데이트를 일시 중단한다고 발표했습니다. 코로나 19가 확대되면서 업무에도 지장을 주기 때문이라네요. 정기 보안 업데이트인 B 릴리즈와 고객 보호, 생산성 확대 패치는 계속 하지만 C...
    Date2020.03.26 소식 By낄낄 Reply1 Views666
    Read More
  13. No Image

    유튜브, 기본 재생 화질을 낮춤

    구글의 유튜브 동영상의 기본 재생 화질을 SD로 낮춥니다. 코로나 19 때문에 집에서 재생하는 동영상이 늘어나고, 네트워크 대역을 압박한데 따른 조치입니다. 20일에 유럽 지역의 기본 재생 화질을 SD로 낮췄으며, 다른 국가들도 조만간 ...
    Date2020.03.26 소식 By낄낄 Reply6 Views1007
    Read More
  14. Folding@home 첫 코로나바이러스 WU 받아봤습니다.

    저번 주말에 F@H 켜 놨을때는 남아있는 WU(과제라고 보시면 됩니다)가 없어서 작업을 거의 못했고 (했더라도 코로나하고는 상관없는 프로젝트들+CPU WU만 사용)   오늘 딴짓하다가 갑자기 눈에 들어와서 켜 봤는데 갑자기 베가 64쪽에 작...
    Date2020.03.25 일반 By가우스군 Reply3 Views621 file
    Read More
  15. 곧 개똥같은 구글지도는 안녕이겠군요

        전 세계에서 유일하게 방치중던 대한민국 지도서비스를 드디어 손보기 시작했습니다. 보시다시피 지하철 2개만 추가되었는데 근 5년동안 어떠한 지도 업데이트가 없다가 처음으로 업데이트된것입니다.   지하철 단 2개가 추가된것이...
    Date2020.03.25 일반 Byhjk9860 Reply17 Views1726 file
    Read More
목록
Board Pagination Prev 1 ... 360 361 362 363 364 365 366 367 368 369 ... 578 Next
/ 578

최근 코멘트 30개
360Ghz
07:27
소스케
07:15
GENESIS
06:52
MUGEN
06:52
포인트 팡팡!
06:50
GENESIS
06:49
보문산타이거
05:06
보문산타이거
05:04
슬렌네터
04:49
라데니안
03:40
포인트 팡팡!
03:16
Lynen
03:16
유카
03:08
린네
02:29
린네
02:24
이수용
02:22
카에데
02:21
별밤전원주택
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

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

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


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

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


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

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

설치 취소