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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.07.2012, 17:57   #1
Don10
Новичок
Джуниор
 
Регистрация: 04.07.2012
Сообщений: 6
По умолчанию Struct и библиотека

Здравствуйте! Есть два файла: cpp и заголофочный файл .h
Подскажите пожалуйста как передать массив из структур в эту библиотеку?
Код:
//cpp
#include "bib.h"

struct movies_t {
  string *title;
} mine;

int main ()
{...
 printmovie (mine);
...
}

//bib.h
void printmovie (movies_t movie)
{
...
}
Don10 вне форума Ответить с цитированием
Старый 04.07.2012, 18:13   #2
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Don10
Код:
void printmovie (movies_t movie)
указатель должна принимать, если хочешь массив передать
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 04.07.2012, 18:16   #3
Don10
Новичок
Джуниор
 
Регистрация: 04.07.2012
Сообщений: 6
По умолчанию

//bib.h
void printmovie (movies_t *movie)
так?
Don10 вне форума Ответить с цитированием
Старый 04.07.2012, 18:21   #4
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Don10
логичнее создать другую функцию
Код:
void print_movies(const movie_t *arr, size_t len)
{
    for (size_t i = 0; i < len; i++)
        print_movie(arr + i);
}
print_movie тоже желательно переписать, чтобы принимала ссылку или указатель
Код:
void print_movie(const movie_t *movie) {...}
ибо зачем постоянно копировать структуру
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 04.07.2012, 18:30   #5
Don10
Новичок
Джуниор
 
Регистрация: 04.07.2012
Сообщений: 6
По умолчанию

пишет, что идентификатор movie_t не определен
Don10 вне форума Ответить с цитированием
Старый 04.07.2012, 18:35   #6
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Don10
логично, bib.h должна видеть определение структуры
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 04.07.2012, 18:40   #7
Don10
Новичок
Джуниор
 
Регистрация: 04.07.2012
Сообщений: 6
По умолчанию

добавил в библиотеку
Код:
struct movies_t {
  string *title;
};
и все равно не определен
Don10 вне форума Ответить с цитированием
Старый 04.07.2012, 18:52   #8
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Don10
выложи самодостаточный минимальный код, на котором наблюдается "проблема"
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 04.07.2012, 18:52   #9
Don10
Новичок
Джуниор
 
Регистрация: 04.07.2012
Сообщений: 6
По умолчанию

Код:
//библиотка
struct movies_t {
  string title;
};
void printmovie(movies_t *movie) {
}

//cpp
printmovie(mine);
ошибся, тип определен, но ругается на вызов функции printmovie, пишет: "отсутствуют экземпляры перегруженная функция printmovie, соответствующие списку аргументов."
Don10 вне форума Ответить с цитированием
Старый 04.07.2012, 18:56   #10
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Don10
дык ты изменил функцию printmovie так, что теперь она принимает указатель, а ты подсовываешь объект, если mine у тебя определен как
Код:
struct movies_t {
  string *title;
} mine;
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
struct C++ PointBreak Visual C++ 0 12.06.2012 11:58
Struct, union HeLiO Общие вопросы C/C++ 6 29.12.2010 12:16
Struct mansp Общие вопросы C/C++ 4 05.12.2010 20:00
STRUCT() alexov Общие вопросы C/C++ 1 13.01.2009 18:13
struct vs MASM format Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 09.05.2008 17:54