Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
fredwriter
7 / 7 / 1
Регистрация: 17.10.2009
Сообщений: 279
#1

Тема из раздела "Непонятки в++" - C++

28.05.2014, 02:24. Просмотров 170. Ответов 6
Метки нет (Все метки)

Здравствуй народ, у кого какие есть версии, почему так работает:
C++
1
2
char comp_Num[20];
WideCharToMultiByte(CP_ACP, 0, Num_Oper, -1, comp_Num, (int)strlen(comp_Num), NULL, NULL);
А так не работает:
C++
1
2
char comp_Num[20] = {0,};
WideCharToMultiByte(CP_ACP, 0, Num_Oper, -1, comp_Num, (int)strlen(comp_Num), NULL, NULL);
?
Не работает в том смысле, что во втором варианте в comp_Num пусто.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2014, 02:24     Тема из раздела "Непонятки в++"
Посмотрите здесь:

Удвоить каждую встречающуюся "о" и "а" в строке C++
C++ Тема "Строки" Задан текст. Распечатать все слова, содержащие заданный символ.
С++/алгоритм/Тема:"Анализ производительности алгоритмов" C++
Тема: "Указатели". C++
C++ напишите программу! тема "динамическое распределение памяти"!
напишите программу!!! тема "работа с символьными данными"!!! C++
C++ Различия между "пробелы" и "табуляция"
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xtorne21st
28.05.2014, 02:26
  #2

Не по теме:

Тему из раздела "Непонятки в++" нужно перенести в "Непонятки в WinApi"

fredwriter
7 / 7 / 1
Регистрация: 17.10.2009
Сообщений: 279
28.05.2014, 02:29  [ТС]     Тема из раздела "Непонятки в++" #3
Цитата Сообщение от xtorne21st Посмотреть сообщение
Тему из раздела "Непонятки в++" нужно перенести в "Непонятки в WinApi"
Да, разделом наверное ошибся. Но массив же по с++.
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12514 / 7076 / 794
Регистрация: 27.09.2012
Сообщений: 17,477
Записей в блоге: 2
Завершенные тесты: 1
28.05.2014, 02:31     Тема из раздела "Непонятки в++" #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от fredwriter Посмотреть сообщение
почему так работает:
Массив не инициализирован же, значит strlen(comp_Num) будет читать пока не встретит 0 в памяти
Цитата Сообщение от fredwriter Посмотреть сообщение
А так не работает:
strlen(comp_Num) вернет 0, а значит функция не будет писать ничего в lpMultiByteStr, т.к. буфера недостаточно.

так же заходим на MSDN и читаем:
cbMultiByte
[in] Size, in bytes, of the buffer pointed to by the lpMultiByteStr parameter. If this value is zero, the function returns the number of bytes required for the buffer. (In this case, the lpMultiByteStr buffer is not used.)
fredwriter
7 / 7 / 1
Регистрация: 17.10.2009
Сообщений: 279
28.05.2014, 02:53  [ТС]     Тема из раздела "Непонятки в++" #5
Да, теперь понял, тут опять всё дело в моей иногда невнимательности а не в чем либо еще.

Добавлено через 2 минуты
Да тут теперь даже и MSDN не нужен, всё там работало отлично, прямо так как я и написал)

Добавлено через 16 минут

Не по теме:

Но всё таки прикол в этом свойстве с++ есть. Если написать так:

C++
1
char comp_Num[20];
, то массив будет инициализирован мусором, и вообще наверно может быть опасен для другой памяти, используемой программой. Прикол в том что мусор в strlen сработал, и казалось бы, всё отлично до поры до времени

Croessmah
28.05.2014, 02:58
  #6

Не по теме:

Цитата Сообщение от fredwriter Посмотреть сообщение
то массив будет инициализирован мусором, и вообще наверно может быть опасен для другой памяти, используемой программой.
убить и карандашом можно. Так опасен ли карандаш?

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2014, 03:02     Тема из раздела "Непонятки в++"
Еще ссылки по теме:

Тема научной работы по предмету "Алгоритмизация и программирование" C++
C++ Ошибка: namespace "geoo" has no member "ch"
C++ Непонятки с оператором "delete" У меня изумление. Крашится программа (Qt5.5) Win 8
Тема-обсуждение для "Алгоритмов сортировок" C++
C++ Проверьте код программы (тема "цикл do while в C++")

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
fredwriter
7 / 7 / 1
Регистрация: 17.10.2009
Сообщений: 279
28.05.2014, 03:02  [ТС]     Тема из раздела "Непонятки в++" #7
В моём случае опасен, потому что пока я отлаживаю программу, чудеса случаются именно тогда когда в массивах мусор всякий, другие переменные страдать начинают потерей своих не так давно полученных значений.
Yandex
Объявления
28.05.2014, 03:02     Тема из раздела "Непонятки в++"
Ответ Создать тему
Опции темы

Текущее время: 14:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru