Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.10.2011, 17:59   #1
rus_phantom
Пользователь
 
Регистрация: 02.05.2011
Сообщений: 16
По умолчанию Структуры и таблицы

Есть задача. Нужно считать из файла строки, распарсить их и потом загнать в структуру. Собственно считать из файла и распарсить для меня просто, загнать в структуру тоже нет проблем, но проблема в том чтобы загнать структуру в таблицу, из-за того, что количество строк для парсинга может быть сколько угодно. Для теста решил упростить задачу до такой - загнать в массив 10 ссылок на структуры. Пытался сделать так:
Код:
#include <stdio.h>

int main()
{
  struct foot_klub {
   char name[20];
   int liga;
   float ochki;
    };

    foot_klub* tbl[10];
    int f = 0;
    for (int i=0;i<=9;i++) {
        struct foot_klub test111 = {"TEST1",i,2.5123};
        tbl[f]=&test111;
        f++;
    }
    for (int i=0;i<=9;i++) {
        printf("%d\n",tbl[i]->liga);
    }
    getchar();
  return 0;
}
На выходе получаю что у меня все адреса в таблице ссылаются на одну структуру. Как мне сделать чтобы у меня в таблице были ссылки на 9 различных структур?
rus_phantom вне форума Ответить с цитированием
Старый 17.10.2011, 18:08   #2
k1moshka
Пользователь
 
Регистрация: 16.10.2011
Сообщений: 16
По умолчанию

Используй связный список
k1moshka вне форума Ответить с цитированием
Старый 18.10.2011, 18:45   #3
Slafka
 
Регистрация: 06.06.2011
Сообщений: 6
По умолчанию

Цитата:
Сообщение от rus_phantom Посмотреть сообщение
Код:
    for (int i=0;i<=9;i++) {
        struct foot_klub test111 = {"TEST1",i,2.5123};
        tbl[f]=&test111;
        f++;
    }
}
На выходе получаю что у меня все адреса в таблице ссылаются на одну структуру. Как мне сделать чтобы у меня в таблице были ссылки на 9 различных структур?
У тебя test111 - это локальная переменная цикла. Когда очередная итерация цикла заканчивается, эта переменная "убивается" и указатель на нее становится бесполезным - он указывает на адрес памяти, где уже давно ничего нету. Сама идея - хранить указатели на 10 объектов подразумевает, что у тебя эти 10 объектов должны быть созданы. Поэтому: в твоем коде рядом с массивом из 10 указателей на структуру foot_klub должен быть объявлен массив из 10 таких структур.
Или же используй списки из библиотеки std -
#include <list> ... итд.

Последний раз редактировалось Slafka; 18.10.2011 в 18:49.
Slafka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PHP+mysql корректировка структуры таблицы Kostia PHP 3 30.09.2011 21:09
Копирование структуры таблицы (Access,ADO) leroy БД в Delphi 3 11.06.2011 16:05
Access ограничить значение поля таблицы значениями полей другой таблицы Сергей089 Microsoft Office Access 10 08.12.2010 02:22
Изменение структуры таблицы Paradox promer БД в Delphi 3 01.07.2010 13:23
Данные из двух полей исх. таблицы в одно поле сводной таблицы Strelec79 Microsoft Office Excel 2 02.08.2009 13:59