|
|
  |
Определение длинны массива. |
|
|
|
Aug 20 2013, 11:53
|
Знающий
   
Группа: Свой
Сообщений: 624
Регистрация: 15-06-10
Из: Россия
Пользователь №: 57 939

|
есть функция в ней вызывается другая функция. unsigned char func(flash unsigned char* comand) { unsigned char L; L=sizeof(comand) *** *** return L; } Вызывается так void main { func("\1\0\2\0\3\2"); 0x01 0x00 0x02 0x00 0x03 0x02 }; В общем размер массива определяет как 4. Хотя должно быть 6.
|
|
|
|
|
Aug 20 2013, 12:28
|
Группа: Новичок
Сообщений: 4
Регистрация: 20-08-13
Пользователь №: 77 994

|
Нет такого понятия, как указатель на массив. Вы передается указатель на беззнаковый char, возможно первый элемент массива. Сколько их у вас там непрерывно в памяти записано - компилятор не знает.
|
|
|
|
|
Aug 20 2013, 12:34
|
Группа: Новичок
Сообщений: 4
Регистрация: 20-08-13
Пользователь №: 77 994

|
Цитата А вы передавайте вместе с указателем еще и длину. Или засуньте в конец массива какое-нибудь значение, которое ни при каких обстоятельствах не может промелькнуть в середине его. И мерьте длину до него. Наподобие сишных строк.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|