|
Как в си объявить массив с возможностью изменения его размера? |
|
|
|
 |
Ответов
|
Jul 8 2011, 08:06
|

Местный
  
Группа: Свой
Сообщений: 381
Регистрация: 5-07-05
Из: Уфа
Пользователь №: 6 544

|
Не много поправлюсь: Код uint16_t Buffer[50]; uint16_t *ptr_buffer; uint16_t index_buffer; uint16_t value;
void main(void) { ptr_buffer = &Buffer; index_buffer = 32; Buffer[index_buffer] = 0х0010; value = *(ptr_buffer + index_buffer); } Это работает. Но это вариант с явным указанием размера буфера при объявлении. Я так понял иначе и нельзя.
|
|
|
|
|
Jul 8 2011, 08:45
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
Цитата(011119xx @ Jul 8 2011, 14:06)  Это работает. Но это вариант с явным указанием размера буфера при объявлении. Я так понял иначе и нельзя. Есть ещё вариант. Стандарт C99 поддерживает автоматические переменные-массивы переменной длины: Код int mean_of_N_samples(int N) { int arr[N]; for (int i = 0; i < N; i++) { arr[i] = get_sample(); } return mean(arr, N); } Массив (обычно) создаётся на стеке. То есть, если вам ваш массив переменной длины нужен временно, то это отличный вариант.
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Jul 8 2011, 09:44
|

Местный
  
Группа: Свой
Сообщений: 381
Регистрация: 5-07-05
Из: Уфа
Пользователь №: 6 544

|
Цитата(AHTOXA @ Jul 8 2011, 14:45)  Есть ещё вариант. Стандарт C99 поддерживает автоматические переменные-массивы переменной длины: Код int mean_of_N_samples(int N) { int arr[N]; for (int i = 0; i < N; i++) { arr[i] = get_sample(); } return mean(arr, N); } Массив (обычно) создаётся на стеке. То есть, если вам ваш массив переменной длины нужен временно, то это отличный вариант. В данном случае массив объявляется внутри функции. Мне нужно чтобы массив был глобальным, он потом используется в другой функции.
|
|
|
|
Сообщений в этой теме
011119xx Как в си объявить массив с возможностью изменения его размера? Jul 7 2011, 03:36 V_G За Кейл не скажу, а в Винде делал указатель на ука... Jul 7 2011, 04:17 ukpyr без выделения памяти - никак, объявите массив макс... Jul 7 2011, 04:44 vvs157 Цитата(ukpyr @ Jul 7 2011, 08:44) без выд... Jul 8 2011, 09:47 XVR В C99 можно задать размер массива в момент его опи... Jul 7 2011, 05:55 GetSmart Цитата(011119xx @ Jul 7 2011, 08:36) А по... Jul 7 2011, 07:00 011119xx Цитата(GetSmart @ Jul 7 2011, 13:00) Поэт... Jul 8 2011, 07:27  zltigo QUOTE (011119xx @ Jul 8 2011, 10:27) В да... Jul 8 2011, 07:53   jorikdima Цитата(zltigo @ Jul 8 2011, 11:53) Абсолю... Jul 8 2011, 08:01    GetSmart Цитата(jorikdima @ Jul 8 2011, 13:01) Под... Jul 8 2011, 08:14     zltigo QUOTE (GetSmart @ Jul 8 2011, 11:14) Если... Jul 8 2011, 08:43   XVR Цитата(zltigo @ Jul 8 2011, 11:53) Абсолю... Jul 8 2011, 08:05 011119xx Не могли бы привести код в качестве примера? Jul 7 2011, 08:27 skripach ЦитатаКак в си объявить массив с возможностью изме... Jul 7 2011, 13:49 GetSmart Цитата(011119xx @ Jul 7 2011, 08:36) Необ... Jul 8 2011, 08:01 zltigo QUOTE (011119xx @ Jul 8 2011, 11:06) Не м... Jul 8 2011, 08:27    sergeeff Цитата(AHTOXA @ Jul 8 2011, 14:41) Если н... Jul 8 2011, 10:47     AHTOXA Цитата(sergeeff @ Jul 8 2011, 16:47) Ну н... Jul 8 2011, 10:55      sergeeff Цитата(AHTOXA @ Jul 8 2011, 13:55) Вы о ч... Jul 8 2011, 11:04       AHTOXA Цитата(sergeeff @ Jul 8 2011, 17:04) Уваж... Jul 8 2011, 11:28        sergeeff Цитата(AHTOXA @ Jul 8 2011, 14:28) А вы п... Jul 8 2011, 11:47         AHTOXA Цитата(sergeeff @ Jul 8 2011, 17:47) Это ... Jul 8 2011, 12:35          sergeeff Цитата(AHTOXA @ Jul 8 2011, 16:35) Кодint... Jul 8 2011, 16:02           AHTOXA Цитата(sergeeff @ Jul 8 2011, 22:02) P.S.... Jul 8 2011, 17:31 011119xx Не ожидал господа от вас таких ответов. Извините, ... Jul 8 2011, 08:29 zltigo QUOTE (011119xx @ Jul 8 2011, 11:29) Може... Jul 8 2011, 08:55  GetSmart Цитата(zltigo @ Jul 8 2011, 13:55) ...
Иб... Jul 8 2011, 09:05   zltigo QUOTE (GetSmart @ Jul 8 2011, 12:05) А по... Jul 8 2011, 09:11    ar__systems Цитата(zltigo @ Jul 8 2011, 05:11) Что пр... Jul 8 2011, 18:02 sergeeff Может автор ветки откроет великую тайну, зачем ему... Jul 8 2011, 08:30 011119xx Например в шрифте символы имеют разную ширину при ... Jul 8 2011, 08:49 sergeeff Цитата(011119xx @ Jul 8 2011, 11:49) Напр... Jul 8 2011, 08:53 GetSmart Цитата(011119xx @ Jul 8 2011, 13:49) Напр... Jul 8 2011, 08:55  sergeeff Цитата(GetSmart @ Jul 8 2011, 11:55) Для ... Jul 8 2011, 09:00   011119xx Цитата(sergeeff @ Jul 8 2011, 15:00) Вы, ... Jul 8 2011, 09:09    AHTOXA Цитата(011119xx @ Jul 8 2011, 15:08) Дело... Jul 8 2011, 09:11     011119xx Цитата(AHTOXA @ Jul 8 2011, 15:11) Вы слу... Jul 8 2011, 09:20    GetSmart Цитата(011119xx @ Jul 8 2011, 14:09) Дело... Jul 8 2011, 09:18     sergeeff Цитата(GetSmart @ Jul 8 2011, 12:13) Так ... Jul 8 2011, 09:19     011119xx Цитата(GetSmart @ Jul 8 2011, 15:18) Так ... Jul 8 2011, 09:35      GetSmart Цитата(011119xx @ Jul 8 2011, 14:35) Прич... Jul 8 2011, 09:42       sergeeff Цитата(GetSmart @ Jul 8 2011, 13:42) В ст... Jul 8 2011, 09:49        GetSmart Цитата(sergeeff @ Jul 8 2011, 14:49) А по... Jul 8 2011, 09:55        andron86 Цитата(sergeeff @ Jul 8 2011, 11:49) Указ... Jul 8 2011, 10:48         sergeeff Цитата(andron86 @ Jul 8 2011, 13:48) По м... Jul 8 2011, 10:55          andron86 Цитата(sergeeff @ Jul 8 2011, 12:55) Вы э... Jul 8 2011, 10:57 011119xx Это
Кодptr_buffer = &Buffer;
как раз и заносит... Jul 8 2011, 09:00 zltigo QUOTE (011119xx @ Jul 8 2011, 12:00) Это
... Jul 8 2011, 09:08  GetSmart Ничё не сделал, только вошёл И сразу мошенник.
С... Jul 8 2011, 13:42   zltigo QUOTE (GetSmart @ Jul 8 2011, 16:42) Себя... Jul 8 2011, 14:28    GetSmart Цитата(zltigo @ Jul 8 2011, 19:28) Если э... Jul 8 2011, 14:46 sergeeff Цитата(011119xx @ Jul 8 2011, 12:00) Это
... Jul 8 2011, 09:11  GetSmart Цитата(sergeeff @ Jul 8 2011, 14:11) А ... Jul 8 2011, 09:30   sergeeff Цитата(GetSmart @ Jul 8 2011, 13:30) Прав... Jul 8 2011, 09:37    GetSmart Цитата(sergeeff @ Jul 8 2011, 14:37) Что ... Jul 8 2011, 09:45     vvs157 Цитата(GetSmart @ Jul 8 2011, 13:45) Чему... Jul 8 2011, 10:02      GetSmart Цитата(vvs157 @ Jul 8 2011, 15:02) .. в с... Jul 8 2011, 10:15       vvs157 Цитата(GetSmart @ Jul 8 2011, 14:15) Пото... Jul 8 2011, 10:21       vvs157 Цитата(GetSmart @ Jul 8 2011, 14:15) Одна... Jul 8 2011, 10:24        sergeeff Цитата(vvs157 @ Jul 8 2011, 14:24) Это оч... Jul 8 2011, 10:32         zltigo QUOTE (sergeeff @ Jul 8 2011, 13:32) вмес... Jul 8 2011, 10:44       zltigo QUOTE (GetSmart @ Jul 8 2011, 13:15) Одна... Jul 8 2011, 10:40        GetSmart Цитата(zltigo @ Jul 8 2011, 15:34) Хвала ... Jul 8 2011, 10:41         zltigo QUOTE (GetSmart @ Jul 8 2011, 13:41) Но в... Jul 8 2011, 10:48          GetSmart Цитата(zltigo @ Jul 8 2011, 15:48) Кто зд... Jul 8 2011, 10:52          GetSmart Цитата(zltigo @ Jul 8 2011, 15:48) Это не... Jul 8 2011, 10:56           zltigo QUOTE (GetSmart @ Jul 8 2011, 13:56) zlti... Jul 8 2011, 13:31      ar__systems Цитата(vvs157 @ Jul 8 2011, 06:02) Вообще... Jul 8 2011, 18:11     zltigo QUOTE (GetSmart @ Jul 8 2011, 12:45) void... Jul 8 2011, 10:23      GetSmart Цитата(zltigo @ Jul 8 2011, 15:23) Замени... Jul 8 2011, 10:28  sasamy Цитата(sergeeff @ Jul 8 2011, 13:11) Хоть... Jul 8 2011, 12:01   ReAl Цитата(sasamy @ Jul 8 2011, 15:01) abc --... Jul 8 2011, 15:13    GetSmart Цитата(ReAl @ Jul 8 2011, 20:13) Речь-то ... Jul 8 2011, 15:32     ar__systems Цитата(GetSmart @ Jul 8 2011, 11:32) Я к ... Jul 8 2011, 18:25      zltigo QUOTE (ar__systems @ Jul 8 2011, 21:25) Э... Jul 8 2011, 18:32    sasamy Цитата(ReAl @ Jul 8 2011, 19:13) "Ой... Jul 8 2011, 15:41     zltigo QUOTE (sasamy @ Jul 8 2011, 18:41) ууу...... Jul 8 2011, 16:41      sasamy Цитата(zltigo @ Jul 8 2011, 20:41) А если... Jul 8 2011, 17:13       zltigo QUOTE (sasamy @ Jul 8 2011, 20:13) кроме ... Jul 8 2011, 18:06        ar__systems Цитата(zltigo @ Jul 8 2011, 14:06) Ну в э... Jul 8 2011, 18:15        AHTOXA Цитата(zltigo @ Jul 9 2011, 00:06) Код 5... Jul 8 2011, 18:49     ViKo Цитата(sasamy @ Jul 8 2011, 18:41) Хотя н... Jul 8 2011, 17:43      sasamy Цитата(ViKo @ Jul 8 2011, 21:43) Имя масс... Jul 8 2011, 18:06       ViKo Цитата(sasamy @ Jul 8 2011, 21:06) А вы в... Jul 8 2011, 18:28        ar__systems Я понял, откуда растет это волна негодования. Если... Jul 8 2011, 18:38         Danis Цитата(ar__systems @ Jul 8 2011, 22:38) Д... Jul 8 2011, 18:49         sonycman Цитата(ar__systems @ Jul 8 2011, 22:38) Д... Jul 8 2011, 18:52         zltigo QUOTE (ar__systems @ Jul 8 2011, 21:38) В... Jul 8 2011, 18:57          AHTOXA Цитата(zltigo @ Jul 9 2011, 00:57) Какая ... Jul 8 2011, 19:03      Danis Цитата(ViKo @ Jul 8 2011, 20:43) Имя масс... Jul 8 2011, 18:11 skripach ЦитатаА по поводу &abc можете почитать у отцов... Jul 8 2011, 10:08 skripach sasamy, поддержу. Jul 8 2011, 12:22 ViKo http://chitay.org/c/04/0409.htm
upd. и еще оттуда
... Jul 8 2011, 13:12 Danis Цитата(011119xx @ Jul 7 2011, 06:36) Необ... Jul 8 2011, 18:02 011119xx Keil не ругается на выражение
Кодptr_buffer = ... Jul 8 2011, 18:06 zltigo QUOTE (ar__systems @ Jul 8 2011, 21:02) С... Jul 8 2011, 18:21
2 страниц
1 2 >
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|