23.08.2012, 16:17
|
#811
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,268 раз(а) в 1,563 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Сообщение от Yurkin2007
|
У Вас параметр data есть указатель на char, а совсем не массив. А какой размер переменной типа указатель? 4 байта в лучшем случае.
Нужно передавать ссылку на массив
|
Вредитель ...
А скажите - что есть имя массива ????
__________________
Осторожно , злой кот
|
|
|
|
23.08.2012, 16:23
|
#812
|
Заблокирован
Регистрация: 27.03.2007
Сообщений: 1,328
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Сообщение от dosikus
|
А скажите - что есть имя массива ????
|
Вы это уже с ИзиРайдером обсуждали ! ![Учучь на ошибках](images/smilies/icon_fingal.gif)
Тут, может, некая путаница имеет место. У автора массив и формальный параметр имеют одинаковые имена, являясь по сути разными типами переменных ...
Последний раз редактировалось Yurkin2007; 23.08.2012 в 16:26.
|
|
|
|
23.08.2012, 16:27
|
#813
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,268 раз(а) в 1,563 сообщении(ях)
|
Сообщение от Yurkin2007
|
Вы это уже с ИзиРайдером обсуждали !
|
Ну и что вы вынесли из того обсуждения ?
У человека правильное определение было , зачем с толку сбивать ?
Аргумент функции указатель на char , имя массива и есть указатель на первый элемент массива типа char ...
Сообщение от Yurkin2007
|
Тут, может, некая путаница имеет место.
|
Это у вас путаница . Читайте о видимости переменных , указателях и типах...
__________________
Осторожно , злой кот
Последний раз редактировалось dosikus; 23.08.2012 в 16:34.
|
|
|
|
23.08.2012, 16:39
|
#814
|
Временная регистрация
Регистрация: 08.01.2007
Сообщений: 92
Сказал спасибо: 17
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Рано радовался(((
Ошибка в строке
[HTML]len=sizeof(data);[/HTML]
Error: D:\Project_CV_encode\main.c(81): incomplete type is not allowed ![Вопрос](images/smilies/icon_question.gif) ?
|
|
|
|
23.08.2012, 16:41
|
#815
|
Заблокирован
Регистрация: 27.03.2007
Сообщений: 1,328
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Я толкую вот о чём
Код:
|
char myArray[10];
char* myPtr = myArray;
printf("%d\n", sizeof(myArray)) // prints 10
printf("%d\n", sizeof(myPtr)); // prints 4 (on a 32-bit machine) |
|
|
|
|
23.08.2012, 16:45
|
#816
|
Заблокирован
Регистрация: 27.03.2007
Сообщений: 1,328
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Сообщение от papa_n
|
Рано радовался(((
|
Это потому, что Ваш компилятор вычисляет значение sizeof на этапе компиляции и заменяет выражение sizeof на полученную константу.
В Вашем случае компилятор не может определить, какой размер будет у массива, т.к. размер будет известен только при вызове функции при выполнении программы.
Придётся Вам определять размер снаружи и передавать, как дополнительный параметр ...
|
|
|
|
23.08.2012, 17:19
|
#817
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Сообщение от Yurkin2007
|
Я толкую вот о чём
Код:
|
printf("%d\n", sizeof(myArray)) // prints 10 |
|
Упорствуете в своей ошибке, ведь говорил уже, что смысл у sizeof другой, не количество элементов массива.
__________________
There's always more than one way to skin a cat.
|
|
|
|
23.08.2012, 17:22
|
#818
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Сообщение от Yurkin2007
|
компилятор не может определить, какой размер будет у массива, т.к. размер будет известен только при вызове функции при выполнении программы.
|
И это ошибка - размер массива, в рассматриваемом случае, известен на этапе компиляции.
__________________
There's always more than one way to skin a cat.
|
|
|
|
23.08.2012, 17:46
|
#819
|
Заблокирован
Регистрация: 27.03.2007
Сообщений: 1,328
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Сообщение от tempora
|
смысл у sizeof другой, не количество элементов массива.
|
Ну, дык, просветите меня, пожалуйста, если это, конечно, не военная тайна!
|
|
|
|
23.08.2012, 17:49
|
#820
|
Заблокирован
Регистрация: 27.03.2007
Сообщений: 1,328
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Сообщение от tempora
|
И это ошибка - размер массива, в рассматриваемом случае, известен на этапе компиляции.
|
Размер массива data[] известен. Размер передавемого функции параметра data[] неизвестен.
Последний раз редактировалось Yurkin2007; 23.08.2012 в 18:05.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 16:12.
|
|