Я нуждаюсь в том, чтобы изменить такую printmovie функцию как мастер на все руки на описание, любая помощь была бы хорошей!
Сначала говорить тебе, что помещать изображение, чтобы показывать твой код не хороший метод здесь в этом сайте. Снова, скопируй код как текст, потому что он облегчает нас, когда остальные дают тебе решение твоей проблемы.
, Сказанные это, в которое мы идем: Я не понимаю хорошо, зачем тебе нужно, чтобы это был указатель в void. Если то, что ты хочешь, является указателем, костлявая, перемещать адрес памяти структуры вместо самой структуры из-за стоимости, как ты делал в твоем примере, ты был бы должен делать нечто похожее:
#include <iostream>
#include <string>
#include <sstream>
#define MAX_MOVIES 3
struct movies_t {
std::string strNombre;
int year;
}films[ MAX_MOVIES];
void printmovies( struct movies_t * lpElement);
int _tmain(int argc, _TCHAR* argv[])
{
std::string myStr;
for( int i = 0 ; i < MAX_MOVIES; i++) {
std::cout << "Enter title: ";
getline( std::cin, films[i].strNombre);
std::cout << "Enter year: ";
getline( std::cin, myStr);
std::stringstream( myStr) >> films[ i].year;
}
std::cout << "You have entered this movies: " << std::endl;
for( int n = 0; n < MAX_MOVIES; n++) {
printmovies( &films[ n]);
}
return 0;
}
void printmovies( struct movies_t * lpElement) {
if( lpElement) {
std::cout << "Name: " << lpElement->strNombre.c_str() << ". Year: " << lpElement->year << std::endl;
}
}
, Если все же это не стоит тебе, и ты хочешь действительно, чтобы указатель был void, ты был бы должен менять определение и осуществление функции printmovies для того, чтобы это оставалось так:
void printmovies( void* lpvoid);
Внутри функции ты должен делать cast в указатель в твою структуру, чтобы мочь снабжать ссылками Ваши внутренние члены:
void printmovies( void* lpvoid) {
struct movies_t * lpElement = ( struct movies_t *) lpvoid;
Оставшаяся часть функции была бы равной.
И в призыве к функции ты должен делать cast твоего structura void*, меняя вызов из-за:
printmovies( (void*)&films[ i]);
, Но это не имеет никакого чувства и улучшает совсем не твою программу.