С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Обращение к структуре в классе с выделением памяти - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Задача на с++ Черно-белая графика http://www.cyberforum.ru/cpp-beginners/thread352261.html
Нужно решить на с++ заранее спасибоо! Одна из базовых задач компьютерной графики – обработка черно-белых изображений. Изображения можно представить в виде прямоугольников шириной w и высотой h,...
C++ Вычисление суммы цифр в строке нужно решить на С++ Дана строка, состоящая из символов, каждый из которых является знаком «+» или цифрой, начинающаяся и заканчивающаяся цифрой. Если в строке встречается сочетание «++», то выдать... http://www.cyberforum.ru/cpp-beginners/thread352258.html
Форматы преобразования данных C++
Пусть k - целое от 1 до 365. Присвоить целой переменной n значение 1,2,...6 или 7 в зависимости от того, на какой день недели (понедельник, вторник,..., суббота или воскресенье) приходится k- й день...
C++ Задача на С++ Наибольшее отношение
Нужно решить задачу в С ++ Наибольшее отношение Условие задачи. Найдите наибольшее значение отношения трехзначного числа к сумме его цифр. Решение задачи на Паскале. Поскольку речь идет о...
C++ Проигрыватель на c++. http://www.cyberforum.ru/cpp-beginners/thread352236.html
Я новичок в c++ раньше работал с delphi и php,сейчас учусь по Дейтл'у. Захотелось написать видео и аудио проигрыватель,хотелось бы поинтересоваться у опытных программистов какую литературу стоит...
C++ Гаусс Ребят, помогите с кусочком программы реализации метода Гаусса. мне нужно приведение матрицы к треугольному виду. Заранее спасибо подробнее

Показать сообщение отдельно
Spliver
0 / 0 / 0
Регистрация: 13.09.2011
Сообщений: 2

Обращение к структуре в классе с выделением памяти - C++

16.09.2011, 18:37. Просмотров 500. Ответов 3
Метки (Все метки)

Добрый день уважаемые форумчане.
Столкнулся с такой проблемой. Есть класс:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Components {
    struct  comps{ // -- База компонентов
        char name[50];
    };
    comps  *components;
 
    int ReadComponents();
    int ReadProducts();
};
 
 
int Components::ReadProducts() {
    int b = ReadComponents();
 
    printf ("Результат: %s",components[5].name);
    // Выводится полная фигня, такое ощущение, что память выделяется только 
        //   в пределах метода, а после уничтожается
}
 
int Components::ReadComponents() {
    comps  *components = (comps*)malloc(sizeof(comps)*10);
    strcpy(components[5].name,"Prostotak");
}
и
C++
1
2
3
4
int main(int argc, char **argv) {
    Components components;
    int a = components.ReadProducts();
}
Ожидаемый ответ работы программы: Prostotak
Однако выводится полная ерунда...

Похоже на то, что метод ReadComponents выделяет память, отрабатывает верно и после завершения эту память освобождает, таким образом к Components::ReadProducts возвращается полная ерунда, которую он и выводит.

Объясните пожалуйста, как правильно выделить память или где это сделать, чтобы программа отработала верно.
Заранее спасибо за помощь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.