Форум программистов, компьютерный форум CyberForum.ru

Структура в функции с++ - C++

Восстановить пароль Регистрация
 
Yashman
 Аватар для Yashman
1 / 3 / 0
Регистрация: 02.07.2011
Сообщений: 90
21.07.2011, 00:24     Структура в функции с++ #1
Привет всем, кто всегда готов помочь. Подскажите пожалуйста, в чем ошибка в коде. Если надо, я могу рассказать условие задания, но я думаю, что это не важно. Вот мой код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <cstring>
#include <iostream>
 
using namespace std;
 
struct stringy 
{
       char * str;
       int ct;
};
void set(stringy & beany, const char * str);
void show(stringy & beany, int n = 1);
void show(char array[], int n = 1);
 
int main(int argc, char *argv[])
{
    stringy beany;
    char testing[] = "Reality isn't what it used to be.";
    set(beany, testing);
    show(beany);
    show(beany, 2);
    testing[0] = 'D';
    testing[1] = 'u';
    show(testing);
    show(testing, 3);
    show("Done!");
    
    system("pause > nul");
    return EXIT_SUCCESS;
}
 
void set(stringy & beany, const char * str)
{
     int ct = strlen(str);
     char *string = new char[ct+1];
     for (int i = 0; i < ct; i++)
        string[i] = str[i];
     beany =
     {
          *string, 
           ct
     };
}
 
void show(stringy & beany, int n)
{
     if (n = 1)
     cout << beany.str <<endl;
     else
     {
         for (int i = 0; i < n; i++)
         cout << beany.str << endl;
     }
}
 
void show(char array[], int n)
{ 
     if (n = 1)
     cout << array << endl;
     else
     {
         for (int i = 0; i < n; i++)
         cout << array << endl;
     }
}
Компилятор пишет, что ошибка в 38-ой строке "expected primary-expression before ';' token" и в 42-ой строке "espected ';' before'}' token". Использую компилятор Dev-C++ 4.9.9.2. Надеюсь на помощь, заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.07.2011, 00:24     Структура в функции с++
Посмотрите здесь:

C++ Есть общая структура программы, как правильно (написать)определить функции к ней?
Структура C++
Структура функции. Квадратное уравнение. C++
Вызов функции, определенной как структура C++
C++ Структура в функции
C++ Структура (значение поля структуры приравнять к значению функции)
общая структура функции на С++ C++
C++ Структура и функции
Структура и функции C++
C++ Структура в С++
Структура Работник, ошибки в функции ввода данных C++
C++ Структура,функции

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
21.07.2011, 01:34     Структура в функции с++ #2
C++
1
2
3
4
5
     beany =
     {
          *string, 
           ct
     };
списки инициализации можно использовать только при объявлении объекта.
тебе нужно писать
C++
1
2
     beany.str = string;
     beany.ct = ct;
при этом надо отметить что ты не копируешь строку а лишь ставишь на неё указатель.
потом по этому указателю необходимо будет освободить память.
Yashman
 Аватар для Yashman
1 / 3 / 0
Регистрация: 02.07.2011
Сообщений: 90
21.07.2011, 16:31  [ТС]     Структура в функции с++ #3
Цитата Сообщение от OstapBender Посмотреть сообщение
потом по этому указателю необходимо будет освободить память.
В смысле в конце функции "int main()" написать "delete [] str" ?

Добавлено через 2 часа 59 минут
Кстати программа работает и так, только кое-какую ерунду выводит, вот пример выполнения:
Reality isn't what it used to be.C:\Windb▌Х'^ц
Reality isn't what it used to be.C:\Windb▌Х'^ц
Reality isn't what it used to be.C:\Windb▌Х'^ц
Duality isn't what it used to be.
Duality isn't what it used to be.
Duality isn't what it used to be.
Duality isn't what it used to be.
Done!

В принципе всё нормально, только вот не понятная надпись C:\Windb▌Х'^ц раздражает
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4248 / 2780 / 219
Регистрация: 12.12.2009
Сообщений: 7,109
Записей в блоге: 1
Завершенные тесты: 1
21.07.2011, 16:41     Структура в функции с++ #4
Цитата Сообщение от Yashman Посмотреть сообщение
В принципе всё нормально, только вот не понятная надпись C:\Windb▌Х'^ц раздражает
Попробуй так:
C++
1
2
3
4
5
6
7
8
9
void set(stringy & beany, const char * str)
{
     int ct = strlen(str);
     char *string = new char[ct+1];
     for (int i = 0; i < ct; i++)
        string[i] = str[i];
     string[ct]='\0';//добавить символ-терминатор
//bla bla bla
}
Yashman
 Аватар для Yashman
1 / 3 / 0
Регистрация: 02.07.2011
Сообщений: 90
21.07.2011, 17:15  [ТС]     Структура в функции с++ #5
Спасибо, KastanEda , так усё отлично.
Kastaneda
21.07.2011, 17:26     Структура в функции с++
  #6

Не по теме:

Цитата Сообщение от Yashman Посмотреть сообщение
KastanEda
вооот

Yandex
Объявления
21.07.2011, 17:26     Структура в функции с++
Ответ Создать тему
Опции темы

Текущее время: 11:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru