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

Обращение по нулевому указателю при преобразование типов - C++

Восстановить пароль Регистрация
 
eagl69
4 / 9 / 1
Регистрация: 12.10.2011
Сообщений: 440
10.02.2016, 18:46     Обращение по нулевому указателю при преобразование типов #1
C++
1
2
3
4
5
6
7
int main()
{
    unsigned long  long long1 = 123456789012345;
    char str[8];
    _ultoa_s(long1, str, size_t (str), 10);
    return 0;
}
Вызвано исключение по адресу 0x1001FB89 (ucrtbased.dll) в ConsoleApplication1.exe: 0xC0000005: нарушение прав доступа при записи по адресу 0x00D30000.
В чем ошибка?
и как преобразовать в обратную сторону?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.02.2016, 18:46     Обращение по нулевому указателю при преобразование типов
Посмотрите здесь:

преобразование типов C++
Преобразование типов C++
C++ не могу понять ошибку типов переменных при деление идет обращение в ноль
преобразование типов C++
Шаблонные классы. Присвоение к указателю и приведение типов C++
Обращение к неинициализованному указателю C++
C++ Как запретить преобразование типов при использовании cin
Преобразование указателя void к указателю на структуру C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SergioO
 Аватар для SergioO
89 / 178 / 61
Регистрация: 13.12.2015
Сообщений: 968
10.02.2016, 19:01     Обращение по нулевому указателю при преобразование типов #2
C++
1
2
3
4
5
6
errno_t _ultoa_s(
    unsigned long value,
    char *str,
    size_t sizeOfstr,
    int radix 
);
value
Число, которое нужно преобразовать.
str
Строковый результат.
sizeOfstr
Размер str в байтах для _ultoa_s или словах для _ultow_s.
radix
Основание системы счисления для value.
C++
1
2
3
4
#include <cstdlib>
unsigned long n = 1234567890;
char str*;
errno_t _ultoa_s( n, str, sizeof(str), 10 );

https://msdn.microsoft.com/ru-ru/library/kk8w4t5t.aspx
eagl69
4 / 9 / 1
Регистрация: 12.10.2011
Сообщений: 440
11.02.2016, 05:54  [ТС]     Обращение по нулевому указателю при преобразование типов #3
Так тоже выдает ошибки....
C++
1
2
3
unsigned  long long1 = 123456789012345;
    char str[8];
    errno_t _ultoa_s(long1, *str, sizeof(str), 10);
\projects\probyi\probyi\probyi.cpp(32): warning C4305: инициализация: усечение из "__int64" к "unsigned long"
1>h:\projects\probyi\probyi\probyi.cpp(32): warning C4309: инициализация: усечение константного значения
1>h:\projects\probyi\probyi\probyi.cpp(34): error C2440: инициализация: невозможно преобразовать "initializer list" в "errno_t"
1> h:\projects\probyi\probyi\probyi.cpp(34): note: Инициализатор содержит слишком много элементов

Ваш вариант:
C++
1
2
3
unsigned  long long1 = 123456789012345;
    char str*; /* error C2059: синтаксическая ошибка: ;*/
    errno_t _ultoa_s(long1, str, sizeof(str), 10);/*error C2440: инициализация: невозможно преобразовать "initializer list" в "errno_t"*/
Yandex
Объявления
11.02.2016, 05:54     Обращение по нулевому указателю при преобразование типов
Ответ Создать тему
Опции темы

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