Отговори на тема  [ 4 мнения ] 
Указател към масив? 
Автор Съобщение
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Нед Окт 19, 2008 7:26 pm
Мнения: 672
Мнение Указател към масив?
unsigned char mes[]="Hello Word";
unsigned char *pmes;
pmes=&mes;

и това еднакво ли е (трябва да е еднакво, иначе съм го загазил);

pmes == (uint8_t *)"Hello Word"

и каде да намеря повече инфо за тези неща. :(
Компилатора приема това
Код:

   unsigned char mes[]="Hello Word";
   unsigned char *pmes;
   pmes=mes;
   if(pmes == ((uint8_t *)"Hello Word"));


_________________
Вниманиене съмвишист....ИЙ.


Нед Авг 28, 2011 10:15 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Сеп 26, 2004 4:11 pm
Мнения: 3750
Местоположение: София
Мнение Re: Указател към масив?
pmes = mes;

Така трябва да бъде.
BTW, "бъркотия" се пише с две "с" : mess


Нед Авг 28, 2011 10:41 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Яну 19, 2007 9:16 am
Мнения: 1063
Местоположение: путинофили: "иди н***й"
Мнение Re: Указател към масив?
RM написа:
unsigned char mes[]="Hello Word";
unsigned char *pmes;
pmes=&mes;

...
unsigned char mes[]="Hello Word";
unsigned char *pmes;
pmes=mes;
if(pmes == ((uint8_t *)"Hello Word"));

[/code]

Това:
if(pmes == ((uint8_t *)"Hello Word"))
ще е винаги FALSE (или поне в 99.99% от компилаторите/опциите им... но засега и това ти стига :))
ако се чудиш ... ЩО?
щото сравняваш адреси ... а не съдържание ... двата стринга ще са на различни адреси

за да сравняваш съдържание, ти трябва нещо дето прави това:
if(strcmp(pmes,"Hello Word"))==0)
и коeто ще е винаги TRUE


Нед Авг 28, 2011 11:05 am
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Нед Окт 19, 2008 7:26 pm
Мнения: 672
Мнение Re: Указател към масив?
Цитат:
Това:
if(pmes == ((uint8_t *)"Hello Word"))
ще е винаги FALSE (или поне в 99.99% от компилаторите/опциите им... но засега и това ти стига )
ако се чудиш ... ЩО?
щото сравняваш адреси ... а не съдържание ... двата стринга ще са на различни адреси


Да прав си ... но така компилатора ми връща "внимание" , когато не съм сигурен в типа дани. например че char не е еднакъв с uint8_t а е еднакъв с unsigned char.
(uint8_t *)"Hello Word") - Означава ли- инициализиране на указател съдържащ 8-битов знак (0-255) с приоритет в скобите (uint8_t *) към първия адрес на масив "Hello Word" , разбира се в случаи на предаване като аргумент във функция.

_________________
Вниманиене съмвишист....ИЙ.


Нед Авг 28, 2011 12:01 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 4 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 3 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни