Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 17.11.2016
Сообщений: 25
1

Получать большее количество байт в переменную

26.02.2017, 15:59. Показов 415. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Работаю с Pebble на Cи. Получаю с сайта информацию и сохраняю в переменную char, но ее максимальный размер 1024 байта, если ставлю значение больше, то приложения крашится. Как получать больше данных(свободной памяти 23 КБ, хотелось бы хотя бы килобайт 15 получать)? Пробовал другие типы (прим. long), но ничего не работало.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#include <pebble.h>
 
Window* window;
TextLayer* location_layer;
static ScrollLayer* scroll_layer;
 
char location_buffer[1024];
 
enum
{
    KEY_LOCATION = 0,
};
 
void process_tuple(Tuple* t)
{
    //Get key
    char key = t->key;
    //Get string value, if present
    char string_value[1024];
    strcpy(string_value, t->value->cstring);
 
    //Decide what to do
    switch (key)
    {
        case KEY_LOCATION:
            //Location received
            snprintf(location_buffer, 1024, "%s", string_value);
            text_layer_set_text(location_layer, (char*) &location_buffer);
            scroll_layer_set_content_size(scroll_layer,
                                          text_layer_get_content_size(location_layer));
            scroll_layer_set_shadow_hidden(scroll_layer, false);
            scroll_layer_set_click_config_onto_window(scroll_layer, window);
            scroll_layer_add_child(scroll_layer,
                                   text_layer_get_layer(location_layer));
            layer_add_child(window_get_root_layer(window),
                            scroll_layer_get_layer(scroll_layer));
            break;
    }
}
 
static void in_received_handler(DictionaryIterator* iter,
                                void* context)
{
    (void) context;
    //Get data
    Tuple* t = dict_read_first(iter);
 
    while (t != NULL)
    {
        process_tuple(t);
        //Get next
        t = dict_read_next(iter);
    }
}
 
static TextLayer* init_text_layer(GRect location, GColor colour,
                                  GColor background, const char* res_id, GTextAlignment alignment)
{
    TextLayer* layer = text_layer_create(location);
    text_layer_set_text_color(layer, colour);
    text_layer_set_background_color(layer, background);
    text_layer_set_font(layer, fonts_get_system_font(res_id));
    text_layer_set_text_alignment(layer, alignment);
    return layer;
}
 
void window_load(Window* window)
{
    window_set_fullscreen(window, true);
    location_layer = init_text_layer(GRect(5, 0, 144, 1000), GColorBlack,
                                     GColorClear, "RESOURCE_ID_GOTHIC_18", GTextAlignmentLeft);
    text_layer_set_text(location_layer, "N/A");
    layer_add_child(window_get_root_layer(window),
                    text_layer_get_layer(location_layer));
    scroll_layer = scroll_layer_create(GRect(0, 0, 144, 168));
}
 
void window_unload(Window* window)
{
    scroll_layer_destroy(scroll_layer);
    text_layer_destroy(location_layer);
}
 
void send_int(uint8_t key, uint8_t cmd)
{
    DictionaryIterator* iter;
    app_message_outbox_begin(&iter);
    Tuplet value = TupletInteger(key, cmd);
    dict_write_tuplet(iter, &value);
    app_message_outbox_send();
}
 
void init()
{
    window = window_create();
    WindowHandlers handlers =
    {
        .load = window_load,
        .unload = window_unload
    };
    window_set_window_handlers(window, handlers);
    //Register AppMessage events
    app_message_register_inbox_received(in_received_handler);
    app_message_open(app_message_inbox_size_maximum(),
                     app_message_outbox_size_maximum());      //Largest possible input and output buffer sizes
    //Register to receive minutely updates
    window_stack_push(window, true);
}
 
void deinit()
{
    window_destroy(window);
}
 
int main(void)
{
    init();
    app_event_loop();
    deinit();
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.02.2017, 15:59
Ответы с готовыми решениями:

Как использовать функцию, выдающую через переменную типа байт результат, объём которого больше, чем байт?
Есть сканер отпечатков. Для него есть компонент ActiveX. У этого компонента есть функции. Среди них...

Дан массив из 11 байт. Подсчитать количество байт с нечетным числом 1 в байте
Дан массив из 11 байт. Подсчитать количество байт с нечетным числом 1 в байте.-Assembler помогите...

Дан массив из 10 байт. Посчитать количество байт, в которых сброшены 6 и 4 биты
Дан массив из 10 байт. Посчитать количество байт,в которых сброшены 6 и 4 биты. Массив байтов...

Дан массив из 6 байт. Посчитать количество байт число единиц, в которых не превышает 3.
Дан массив из 6 байт. Посчитать количество байт число единиц, в ко- торых не превышает 3. блин...

3
1786 / 1036 / 445
Регистрация: 12.05.2016
Сообщений: 2,550
26.02.2017, 16:18 2
pozishow, может malloc-ом выделить?
0
Заблокирован
26.02.2017, 16:21 3
string_value глобальным сделать
1
0 / 0 / 0
Регистрация: 17.11.2016
Сообщений: 25
26.02.2017, 20:02  [ТС] 4
shvyrevvg, можешь кинуть пример как это выглядеть должно хотя бы? Просто я пока не сильно понимаю как это можно реализовать. Просто он с другого файла передается единым текстом и я не знаю как его делить malloc-ом
0
26.02.2017, 20:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.02.2017, 20:02
Помогаю со студенческими работами здесь

Дан массив из 10 байт. Посчитать количество байт содержащих ровно три единицы
Здравствуйте, возникла проблема с решением задачи: &quot;Дан массив из 10 байт. Посчитать количество...

Дан массив из 13 байт. Посчитать количество байт содержащих только нули или единицы
ПОЖАЛУЙСТА! РЕШИТЕ ЗАДАЧКИ!!!:) Задача №1 дан массив из 13 байт. посчитать количество байт...

Дан массив из 11 байт. Посчитать количество байт, в которых нет единиц, стоящих рядом
Дан массив из 11 байт. Посчитать количество байт, в которых нет единиц, стоящих рядом.

Дан массив из 10 байт. Посчитать количество байт с числом единиц в байте равным три
помогите с задачкой! Дан массив из 10 байт. Посчитать количество байт с числом единиц в байте...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru