The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Трабл с Реаллок...."
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Трабл с Реаллок...."
Сообщение от slavon Искать по авторуВ закладки(ok) on 13-Май-04, 00:55  (MSK)
Вот вырезка из кода


struct ff_index {                                                                                                                  
        int size;                                                                                                                  
        long *index;                                                                                                                
        int pos;                                                                                                                    
        int hash_start[65536];                                                                                                      
        int *hash_next;                                                                                                            
        unsigned short *sum16;                                                                                                      
        struct ff_data_heap *data;                                                                                                  
};  


struct ff_data_heap {                                                                                                              
        long size;                                                                                                                  
        long pos;                                                                                                                  
        char *data;                                                                                                                
};                                                                                                                                  
  

struct ff_index path_index;                                                                                                        
struct ff_data_heap index_heap;


.................

if ( !(index_heap.data = (char*)malloc(index_heap.size)) ) {
printf("Can't allocate memory for heap.\n");
exit(ENOMEM);
}

.................


/// Вызывается для path_index

void InitIndexStruct(struct ff_index *index, int size) {                                                                            
        int i;                                                                                                                      
                                                                                                                                    
        index->size = size;                                                                                                        
        index->pos = 0;                                                                                                            
        index->index = (long*)malloc(sizeof(long)*size);                                                                            
        index->hash_next = (int*)malloc(sizeof(int)*size);                                                                          
        index->sum16 = (unsigned short*)malloc(sizeof(unsigned short)*size);                                                        
        if ( !index->index || !index->hash_next || !index->sum16 ) {                                                                
                printf("Can't allocate memory for index\n");                                                                        
                exit(ENOMEM);                                                                                                      
        }                                                                                                                          
        for (i=0; i<65536; index->hash_start[i++]=-1);                                                                              
        for (i=0; i<size; index->hash_next[i++]=-1);                                                                                
        index->data = &index_heap;                                                                                                  
}                                                                                                                                  

.................                      

//ERROR!!!

index_heap.data = (char)realloc((index_heap.size+500000));  


Вот на этом месте прога слетает с Segmentation Falied (Core Dumped)
Думаю из-за того что структура в структуре..
А почему? И как победить...
На вас надеюсь!!! :)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Трабл с Реаллок...."
Сообщение от slavon Искать по авторуВ закладки(ok) on 13-Май-04, 02:21  (MSK)
>Вот вырезка из кода
>
>
>struct ff_index {
>        int size;
>        long *index;
>        int pos;
>        int hash_start[65536];
>        int *hash_next;
>        unsigned short *sum16;
>        struct ff_data_heap *data;
>};
>
>
>struct ff_data_heap {
>        long size;
>        long pos;
>        char *data;
>};
>
>
>struct ff_index path_index;
>struct ff_data_heap index_heap;
>
>
>.................
>
>if ( !(index_heap.data = (char*)malloc(index_heap.size)) ) {
>printf("Can't allocate memory for heap.\n");
>exit(ENOMEM);
>}
>
>.................
>
>
>/// Вызывается для path_index
>
>void InitIndexStruct(struct ff_index *index, int size) {
>        int i;
>
>        index->size = size;                                                                                                        
>        index->pos = 0;                                                                                                            
>        index->index = (long*)malloc(sizeof(long)*size);                                                                            
>        index->hash_next = (int*)malloc(sizeof(int)*size);                                                                          
>        index->sum16 = (unsigned short*)malloc(sizeof(unsigned short)*size);                                                        
>        if ( !index->index || !index->hash_next || !index->sum16 ) {                                                                
>            
>    printf("Can't allocate memory for index\n");
>            
>    exit(ENOMEM);
>        }
>        for (i=0; i<65536; index->hash_start[i++]=-1);                                                                              
>        for (i=0; i<size; index->hash_next[i++]=-1);                                                                                
>        index->data = &index_heap;                                                                                                  
>}
>
>.................
>
>//ERROR!!!
>
>index_heap.data = (char)realloc((index_heap.size+500000));
>
>
>Вот на этом месте прога слетает с Segmentation Falied (Core Dumped)
>Думаю из-за того что структура в структуре..
>А почему? И как победить...
>На вас надеюсь!!! :)

вопрос закрыт... решил методом тыка.. ;)

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру