В общем размер массива определяет как 4. Хотя должно быть 6.
vetal
Aug 20 2013, 12:04
sizeof в Вашем коде определяет размер указателя, который в Вашем случае равен 4. Для определения размера содержимого, расположенного по указателю следует использовать другие методы.
MKdemiurg
Aug 20 2013, 12:21
хм, но передаю то я указатель на массив...
esvstn
Aug 20 2013, 12:28
Нет такого понятия, как указатель на массив. Вы передается указатель на беззнаковый char, возможно первый элемент массива. Сколько их у вас там непрерывно в памяти записано - компилятор не знает.
Xenia
Aug 20 2013, 12:29
Цитата(MKdemiurg @ Aug 20 2013, 16:21)
хм, но передаю то я указатель на массив...
А вы передавайте вместе с указателем еще и длину. Все так делают, т.к. вызывающей процедуре лучше известно, что она суёт в вызываемую функцию, а внутри той функции с этим разобраться трудно (практически невозможно).
esvstn
Aug 20 2013, 12:34
Цитата
А вы передавайте вместе с указателем еще и длину.
Или засуньте в конец массива какое-нибудь значение, которое ни при каких обстоятельствах не может промелькнуть в середине его. И мерьте длину до него. Наподобие сишных строк.
MKdemiurg
Aug 20 2013, 12:46
Цитата(esvstn @ Aug 20 2013, 15:28)
Нет такого понятия, как указатель на массив. Вы передается указатель на беззнаковый char, возможно первый элемент массива. Сколько их у вас там непрерывно в памяти записано - компилятор не знает.