С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Dimarik__
21 / 21 / 1
Регистрация: 29.04.2010
Сообщений: 444
#1

_itoa,вопрос по char* - C++

04.03.2011, 21:39. Просмотров 1052. Ответов 2
Метки нет (Все метки)

В MSDN описана функция

char *_itoa(
int value,
char *str,
int radix
);

В примере

C++
1
2
3
4
5
6
7
8
char buffer[65];
   int r;
   for( r=10; r>=2; --r )
   {
     _itoa( -1, buffer, r ); // C4996
     // Note: _itoa is deprecated; consider using _itoa_s instead
     printf( "base %d: %s (%d chars)\n", r, buffer, strnlen(buffer, _countof(buffer)) );
   }
Если же я вместо char buffer[65] напишу char* buffer, у меня программа даст недопустимую ошибку (обрщение к непроинициализированному указателю) при выполнении, если так char* buffer = "": - То
обращение по несуществующей памяти.
Получается, что когда я пишу char* buff = " "; у меня компилятор выделяет участок памяти, равный числу символов в си-строке? Или как? Можно как-то сделать так, чтобы _itoa работала не с char[], а с char*?
P.S. хотя по сути указатель char * buff указывает на первый символ массива buff....
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.03.2011, 21:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос _itoa,вопрос по char* (C++):

Вопрос по Char - C++
Вот в чем суть я токо изучаю С++ токо неделю (самоучка по книге Шилдта) раньше програмировал на Паскале. Как я понял переменная типа Char...

Вопрос про char - C++
Пожалуйста обьясните доступным языком в чем разница между объявлениями, и какие когда лучше использовать char a; char *c; char b=new...

Вопрос об особенности char и конструкторах - C++
1. Хочу вывести на экран таблицу символов ascii: #include <iostream> int main() { unsigned short T; for...

Itoa - C++
Привет, столкнулся с проблемой что компилятор видит ошибку в itoa and strlen, подключал все возможные библиотеки - не помогло, знает кто...

itoa(); - C++
вопрос!!! вводится массив элементов типа unsigned char двоичным числом, т.е только 0 и 1... как перевести мое вводимое число в...

itoa - C++
Почему Itoa (ltoa, ultoa) переводит неправильно при n=299999? #include "stdio.h" #include "string.h" #include "stdlib.h" #include...

2
MILAN
886 / 780 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
04.03.2011, 21:45 #2
Цитата Сообщение от Dimarik__ Посмотреть сообщение
Можно как-то сделать так, чтобы _itoa работала не с char[], а с char*?
Нужно выделить память под массив символов с помощью функции malloc.
1
accept
4828 / 3249 / 165
Регистрация: 10.12.2008
Сообщений: 10,569
05.03.2011, 03:02 #3
Цитата Сообщение от Dimarik__
Получается, что когда я пишу char* buff = " "; у меня компилятор выделяет участок памяти, равный числу символов в си-строке?
нет, компилятор создаёт переменную типа char *, потом в отдельном месте создаёт строку " "
(это равно символьному массиву { ' ', '\0' })
и потом адрес первого символа этой строки записывает в переменную (адрес пробела)
и памяти выделяется только необходимое количество для хранения этого адреса
(память, которую занимает строка, вообще не относится к переменной)
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.03.2011, 03:02
Привет! Вот еще темы с ответами:

Не работает itoa - C++
Добрый день ! Подскажите пожалуйста , почему не работает itoa Вроде все подключил. http://ideone.com/yTSISu #include...

не работает itoa - C++
void summa(int namber1_,int namber2_,unsigned short int des1,unsigned short int des2){ unsigned short int des_,des__; ...

дополнение к itoa() - C++
Как всем известно, http://www.cplusplus.com/reference/clibrary/cstdlib/itoa/ это функция, с помощью которой можно переводить числа с...

Itoa И String - C++
Вопрос как подружить String строку с itoa а вводить доп переменные для хранение не хочется слышал что есть метод класса которую...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.