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

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

Войти
Регистрация
Восстановить пароль
 
sitesv
24 / 22 / 2
Регистрация: 22.04.2010
Сообщений: 658
#1

Указатель - C++

19.04.2012, 16:55. Просмотров 293. Ответов 8
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
unsigned short b=0xffff;
char *a=malloc(65536);
for(int i=0;i<65536;i+=2)
{
     *(a+i)=b;
}
free(a);
Добрый день!
Создал указатель на область памяти.
Хочу по указателю записывать сразу двухбайтовую переменную.
Что-то мне подсказывает, что я делаю что-то не так...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2012, 16:55     Указатель
Посмотрите здесь:

Про указатель *, указатель на указатель **, и про new - C++
#include &quot;stdafx.h&quot; class neuro { public: double *inputs; int inputs_count; neuro(int uc, double ii ) { ...

Указатель - C++
Здравствуйте! При прочтении одной книжки наткнулся на нечто не совсем понятное. #include &lt;iostream&gt; #include &lt;string&gt; using...

Указатель this - C++
Всем привет. Как можно преобразовать указатель this в строку, для дальнейшего использования в функции MessageaBoxA()? Просто - напросто. я...

Указатель на указатель - C++
Есть задача: Дана динамическая строка размер массива символов которой точно соответствует строке. написать функцию которая добавляет...

Указатель - C++
Можете объяснить устройство работы ,мне казалось что если вызвать просто ptr то должен возвратиться адрес,а если * ptr ,то значение,здесь...

указатель - C++
как сделать эту программу с использованием указателя? #include &lt;iostream.h&gt; #include&lt;conio.h&gt; void main() { clrscr(); int...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NoMasters
Псевдослучайный
1744 / 1087 / 71
Регистрация: 13.09.2011
Сообщений: 3,115
19.04.2012, 17:10     Указатель #2
Цитата Сообщение от sitesv Посмотреть сообщение
*(a+i)=b;
В результате вычислений в левой части получается char, соответственно b к приведётся к этому типу с потерей данных.
Kuzia domovenok
1889 / 1744 / 117
Регистрация: 25.03.2012
Сообщений: 5,922
Записей в блоге: 1
19.04.2012, 17:25     Указатель #3
попробуй
C
1
2
for(int i=0;i<65536;i+=2)
*(    (unsigned short*)(a+i)  )=b;
или
C
1
2
for(int i=0;i<32768;i++)
*(    ((unsigned short*)a)+i )=b;
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
19.04.2012, 17:29     Указатель #4
Мало того, можно весь массив оптом заполнить
C
1
2
3
#include <string.h>
/*...*/
memset(a, 0xff, 65536);
Добавлено через 2 минуты
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
попробуй
сначала посчитается a+i, за тем приведётся к unsigned short * и на последней итерации удачно вылетит за границу массива.
Kuzia domovenok
1889 / 1744 / 117
Регистрация: 25.03.2012
Сообщений: 5,922
Записей в блоге: 1
19.04.2012, 17:35     Указатель #5
Цитата Сообщение от easybudda Посмотреть сообщение
сначала посчитается a+i, за тем приведётся к unsigned short * и на последней итерации удачно вылетит за границу массива.
с какого перепуга? последняя итерация i=65534
sitesv
24 / 22 / 2
Регистрация: 22.04.2010
Сообщений: 658
19.04.2012, 17:39  [ТС]     Указатель #6
Получается, что сделать я должен что-то такое:
Unsigned short *a=malloc(32768*sizeof(unsigned short));
For(int i=0;i<32768;i++)
{
*(a+i)=b;
}
Free(a);

Я правильно все понял?
KuKu
1556 / 1034 / 76
Регистрация: 17.04.2009
Сообщений: 2,974
19.04.2012, 17:41     Указатель #7
угу, а a[i] - для слабаков ?)
Kuzia domovenok
1889 / 1744 / 117
Регистрация: 25.03.2012
Сообщений: 5,922
Записей в блоге: 1
19.04.2012, 17:42     Указатель #8
ну дык,
а можно вообще a[i]=b;
или memset, да
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.04.2012, 18:08     Указатель
Еще ссылки по теме:

указатель - C++
собственно смысл ссылки я понял, грубо говоря передача в функцию адреса переменной что бы функция меняла не копию, а сам передаваемый...

указатель на this - C++
Если в описании метода класа написать list n = *this; list - имя класса, то в n будет содержаться указатель на текущий обьект, ссылка...

Указатель this - C++
Здравствуйте! Пишу на vb и delphi, решил изучить C++ с нуля. Учу в среде C++ Builder XE7. Для практики решил написать простейшее...

Указатель на указатель - C++
Чем отличаются указатели на указатель от ссылки на указатель? Встретилась программа для работы со списками. В ней есть функция Insert....


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

Или воспользуйтесь поиском по форуму:
sitesv
24 / 22 / 2
Регистрация: 22.04.2010
Сообщений: 658
19.04.2012, 18:08  [ТС]     Указатель #9
Т.е в памяти будут выделен 0..65535 диапазон байт и заполнять мы память будем по 2 байта за раз?
Yandex
Объявления
19.04.2012, 18:08     Указатель
Ответ Создать тему
Опции темы

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