[ C / C++ ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. _nic

    _nic Elder - Старейшина

    Joined:
    5 May 2006
    Messages:
    651
    Likes Received:
    54
    Reputations:
    3
  2. -m0rgan-

    -m0rgan- Elder - Старейшина

    Joined:
    29 Sep 2008
    Messages:
    514
    Likes Received:
    170
    Reputations:
    17
    Ну так что там с CopyFile()
     
  3. -m0rgan-

    -m0rgan- Elder - Старейшина

    Joined:
    29 Sep 2008
    Messages:
    514
    Likes Received:
    170
    Reputations:
    17
    не актуально, разобрался
     
  4. Gin

    Gin Elder - Старейшина

    Joined:
    11 Sep 2008
    Messages:
    133
    Likes Received:
    7
    Reputations:
    4
    Помогите разобраться.
    Дан массив чисел, произвольной длинны пытаюсь обойти его с помощью указателя,
    а получаеться что он выходит за пределы массива.
    Почему не верно:?
    Code:
    double max=*pArr;
    while(*pArr){
    if(max<*pArr)
    max=*pArr;
    pArr++;
    }
    
     
  5. BrainDeaD

    BrainDeaD Elder - Старейшина

    Joined:
    9 Jun 2005
    Messages:
    774
    Likes Received:
    292
    Reputations:
    214
    потому что программа не занает где кончается массив. даже за пределами твоего массива в ячейках памяти находятся какие-то данные - цифровой мусор. программа не ясновидящая, что бы понять какие данные относятся к массиву, а какие нет. таким образом инкементируя адреса, указатель будет прыгать дальше, а в while(*pArr) выражение *pArr будет ещё долго true.
     
  6. rudvil

    rudvil Elder - Старейшина

    Joined:
    25 Aug 2008
    Messages:
    200
    Likes Received:
    29
    Reputations:
    0
    Похожим образом можно работать с char, но не с double...
    Ну так если дан массив то работай с ним как с массивом т.е.
    Code:
        double test[5];
        for (int i = 0; i < (sizeof(test) / sizeof(double)); i++ ) {
            std::cout << test[i] << "\n";
            ...
        }
     
    1 person likes this.
  7. Gin

    Gin Elder - Старейшина

    Joined:
    11 Sep 2008
    Messages:
    133
    Likes Received:
    7
    Reputations:
    4
    2rudvil and 2all
    а по-красивей варианта нет :?
    я массив в функцию передаю и такой ход может не прокатить.
     
    1 person likes this.
  8. rudvil

    rudvil Elder - Старейшина

    Joined:
    25 Aug 2008
    Messages:
    200
    Likes Received:
    29
    Reputations:
    0
    Код в студию...
     
  9. nitx

    nitx Elder - Старейшина

    Joined:
    4 Jan 2008
    Messages:
    214
    Likes Received:
    31
    Reputations:
    10
    объясни понятно что нужно сделать, какая вобще задача. Тот код что ты привел в пример смысла почти не имеет. Надо посчитать количество элементов массива? С помощью указателя и куска памяти где этот массив лежит это сделать нереально.
     
  10. Gin

    Gin Elder - Старейшина

    Joined:
    11 Sep 2008
    Messages:
    133
    Likes Received:
    7
    Reputations:
    4
    Вот изначально как выглядело. Цель банальна найти наибольший элемент в массиве.
    Как уже выяснилось это заведомо неверный код, просто хочу показать как выглядело изначально и какие цели приследуются.

    Code:
    max_arr(double *pArr){
    double max=*pArr;
    while(*pArr){
    if(max<*pArr)
    max=*pArr;
    pArr++;
    }
    
     
  11. -m0rgan-

    -m0rgan- Elder - Старейшина

    Joined:
    29 Sep 2008
    Messages:
    514
    Likes Received:
    170
    Reputations:
    17
    Как в Code::Block добавить иконку?
    То есть нужно прифигачить свою иконку в левую верхнюю часто консольного приложения, и естественно на екзешкик(ярлык).
    Зарание благодарен!
     
  12. n4e/\@

    n4e/\@ Elder - Старейшина

    Joined:
    6 May 2008
    Messages:
    138
    Likes Received:
    17
    Reputations:
    0
    2Gin изначально массив как инициализирован?
    Может стоит сделать структуру которая будет содержать значение, и указатель на следующйи элемент?
    Тогда обход можно выполнять так:
    Code:
    for ( mas *pnt = temp; pnt != NULL; pnt = pnt->next )
    Или гораздо проще использовать std::vector если нужун динамический массив

    2-m0rgan-
    Не уверен но может это поможет?
    Добавляем в проект файл resource.rc.
    Иконка приложения:
    Code:
    // should be first in alphabetical ID list, we use "AAAAAAA" name
    AAAAAAA_PROGRAM_ICON ICON "PATH_to_icon/icon_NAME.ico"
    Наткнулся на одном блоге.
     
    #3952 n4e/\@, 13 Oct 2009
    Last edited: 13 Oct 2009
  13. -m0rgan-

    -m0rgan- Elder - Старейшина

    Joined:
    29 Sep 2008
    Messages:
    514
    Likes Received:
    170
    Reputations:
    17
    2n4e/\@, не не прокатит
     
  14. Ra$cal

    Ra$cal Elder - Старейшина

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    для обычных массивов нада передавать его размер. других путей нет. прваильный же путь - юзать stl'ский vector.
     
    1 person likes this.
  15. -m0rgan-

    -m0rgan- Elder - Старейшина

    Joined:
    29 Sep 2008
    Messages:
    514
    Likes Received:
    170
    Reputations:
    17
    Народ, дайте плз ХОРОШУЮ книгу по АПИ в С++, а то я уже заебался методом тыка шаманить с этими форточками =\\\
     
  16. Hiro Protagonist

    Joined:
    26 Aug 2009
    Messages:
    132
    Likes Received:
    24
    Reputations:
    -2
    окошки
    ------------

    (!) Петцольд Ч. Программирование для Windows 95
    Щупак Ю. Win32 Api. Разработка приложений для Windows
    Финогенов. WIN32

    система
    ------------

    (!) Рихтер. Windows via C/C++
    Харт. Системное программирование в среде windows

    Выделенные (!) обязательны к прочтению. Всё есть в сети (Правда по поводу Рихтера - последнего издания не уверен, но предыдущее есть, а там все почти тоже самое, за исключением висты).

    ЗЫ Да и Петцольд НЕ УСТАРЕЛ в отношении оконного интерфейса. Про остальное лучше читать у Рихтера (dll, memory, etc)
     
    1 person likes this.
  17. scrat

    scrat кодер

    Joined:
    8 Apr 2007
    Messages:
    625
    Likes Received:
    541
    Reputations:
    3
    ну если хочешь написать что-то более-менее нормальное, советую win forms, остальной winapi - только в случае, когда нужно что-то системное сделать
     
    1 person likes this.
  18. -m0rgan-

    -m0rgan- Elder - Старейшина

    Joined:
    29 Sep 2008
    Messages:
    514
    Likes Received:
    170
    Reputations:
    17
    2scrat, на даный момент я пишу простенькие програмки и набираюсь опыта.
    Вот столкнулся с задачей реализации ГУИ приложений на С++
    Благодарю за вин формс, попробую.

    2Hiro Protagonist, благодарю за апи.
     
  19. GenTao

    GenTao New Member

    Joined:
    10 Oct 2009
    Messages:
    123
    Likes Received:
    2
    Reputations:
    -3
    Эм,гуи приложения лучше на борланд с++ билдере создавать.Так посоветовали.
     
  20. BrainDeaD

    BrainDeaD Elder - Старейшина

    Joined:
    9 Jun 2005
    Messages:
    774
    Likes Received:
    292
    Reputations:
    214
    не согласен. лично мне лучше VS, QT.
     
Thread Status:
Not open for further replies.