1 / 3 / 4
Регистрация: 02.07.2011
Сообщений: 90
1

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

21.07.2011, 00:24. Показов 978. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет всем, кто всегда готов помочь. Подскажите пожалуйста, в чем ошибка в коде. Если надо, я могу рассказать условие задания, но я думаю, что это не важно. Вот мой код:

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. Надеюсь на помощь, заранее спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.07.2011, 00:24
Ответы с готовыми решениями:

Структура,функции
Собственно суть: создается массив структур из 6 друзей,который надо просортировать по дате...

Структура в функции
Помогите разобраться, буду очень благодарен. Цитирую вопрос с лабораторной: У C++...

Структура и функции
Нужно сделать так, чтобы из функции &quot;Function_Read&quot; значения структуры сохранялись и можно было их...

Структура и функции
задание: 1) Напишите функцию, принимающую структуру box по значению и отображающую все ее члены. ...

5
594 / 532 / 76
Регистрация: 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;
при этом надо отметить что ты не копируешь строку а лишь ставишь на неё указатель.
потом по этому указателю необходимо будет освободить память.
2
1 / 3 / 4
Регистрация: 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▌Х'^ц раздражает
0
5232 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
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
}
2
1 / 3 / 4
Регистрация: 02.07.2011
Сообщений: 90
21.07.2011, 17:15  [ТС] 5
Спасибо, KastanEda , так усё отлично.
0
Kastaneda
21.07.2011, 17:26     Структура в функции с++
  #6

Не по теме:

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

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.07.2011, 17:26

Общая структура функции на С++
Как выглядит общая структура функции на С++?

Структура функции. Квадратное уравнение.
Подскажите пожалуйста как написать функцию решения квадратного уравнение с помощью структуры...

Вызов функции, определенной как структура
Программа аварийно завершается при запуске Методом комментирования строк пришел к выводу, что все...

Структура + функции + операция с файлами(задача)
Собственно имеется такая задача: 1)Создать структуру с 3-мя типами данных(Фамилия,Предмет,Оценка)...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru