Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
Обращение с char-массивом через указатель [C++] |

08.07.2007, 08:30
|
|
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме: 2209675
Репутация:
537
|
|
Обращение с char-массивом через указатель [C++]
Вот есть у меня char-массив
char mem[1024];
Если его щас вывести через указатель на первый элемент то там полно всякой чуши. Хотелось бы его обнулить сразу, но знаю только метод тупого перебора элементов с присвоением каждому значения 0.
Мне вот чего надо.
Создать указатель на массив и затем через указатель присваивать ему цифры и символы.
Т.е. вначале поставил процент, инкрементировал указатель, затем внёс какой-нить инт и опять инкрементировал. И при этом следить чтобы массив не переполнился, а затем вернуть сцылку на его начало и вывести его весь на экран.
Вот я создал указатель на начало
char *start = mem;
этого достаточно чтобы потом выводить его на экран?
Создаю ещё один указатель,
char *pntr = mem;
пытаюсь присвоить ему значение:
1. если вот так
pntr = "%";
прога вылетает,
2. если вот так
*pntr = "%";
error C2440: '=' : cannot convert from 'char [2]' to 'char'
PS кто-нить знает, могут ли кошачьи блохи кусать человека и жить на нём? Задрали, сцуко
|
|
|

08.07.2007, 11:32
|
|
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме: 5339610
Репутация:
4360
|
|
Сообщение от invlose
pntr-указатель
что ты этим хотел сделать?
pntr = "%";
Это вполне корректное присвоение константной строки указателю.
Но я думаю хотел он явно не этого... а *pntr='%'.
Дальше делаешь pntr++; и рабоатешь со след символом.. *pntr='9';
|
|
|

08.07.2007, 12:14
|
|
Постоянный
Регистрация: 11.03.2007
Сообщений: 581
Провел на форуме: 4172659
Репутация:
646
|
|
Хотелось бы его обнулить сразу, но знаю только метод тупого перебора элементов с присвоением каждому значения 0
Функция ZeroMemory. В Делфи есть еще FillChar, но в Си такой не припоминаю
|
|
|

08.07.2007, 14:15
|
|
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме: 5339610
Репутация:
4360
|
|
memset из CRT; ZeroMemory - WinAPI, RtlZeroMemory - NativeAPI.
в конце концов вызывается насколько я помню все равно третья, которая сводится к асм команде STOS.
|
|
|

08.07.2007, 18:52
|
|
Участник форума
Регистрация: 16.06.2007
Сообщений: 107
Провел на форуме: 725870
Репутация:
208
|
|
я обычно обнуляю memset'ом:
Код:
char szText[1024];
memset(szText, 0, sizeof ( szText )); // аналогично memset(szText, 0, 1024);
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|