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

Ошибка при передаче в функцию - C++

Восстановить пароль Регистрация
 
Леонид Каруна
0 / 0 / 0
Регистрация: 14.04.2013
Сообщений: 148
18.06.2014, 17:54     Ошибка при передаче в функцию #1
Хочу передать в функцию строку и там ее заполнить, подчеркивает
void karta(MyStruct s.karta[],int size);
И пишет: 1 IntelliSense: expected a ')' c:\Users\student.ITSTEP1.004\Documents\Visual Studio 2012\Projects\Testyr\Testyr\Test.cpp 14

Кто знает в чем проблема?

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
#include <iostream>
#include <time.h>
#include <string>
using namespace std;
 
 
struct MyStruct{
const int size=10;
string karta[size];
//int mast;
}s;
 
void mast(int mast);
void karta(MyStruct s.karta[],int size);
 
void main(){
    srand(time(0));
    setlocale(LC_ALL,"rus");
    cout<<"Вывод карт"<<endl;
    //(s.mast);
    system("pause");
}
//Рэнд на масти
void mast(int mast){
}
//Рэнд на карты
void karta(MyStruct s.karta[],int size){
 
}
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,164
Завершенные тесты: 1
18.06.2014, 17:58     Ошибка при передаче в функцию #2
Цитата Сообщение от Леонид Каруна Посмотреть сообщение
void karta(MyStruct s.karta[],int size);
C++
1
void karta(MyStruct sss,int size);
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
18.06.2014, 17:59     Ошибка при передаче в функцию #3
void karta(MyStruct *karta,int size)
Psilon
Master of Orion
 Аватар для Psilon
5738 / 4686 / 619
Регистрация: 10.07.2011
Сообщений: 14,160
Записей в блоге: 5
Завершенные тесты: 4
18.06.2014, 18:12     Ошибка при передаче в функцию #4
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
#include <iostream>
#include <time.h>
#include <string>
using namespace std;
 
struct MyStruct{
    static const int size = 10;
    string karta[size];
}s;
 
void mast(int);
void karta(MyStruct*, int);
 
void main(){
    srand(time(0));
    setlocale(LC_ALL, "rus");
    cout << "Вывод карт" << endl;
    //(s.mast);
    system("pause");
}
//Рэнд на масти
void mast(int mast){
}
//Рэнд на карты
void karta(MyStruct* s, int size){
 
}
Леонид Каруна
0 / 0 / 0
Регистрация: 14.04.2013
Сообщений: 148
18.06.2014, 18:25  [ТС]     Ошибка при передаче в функцию #5
Что-то додуплиться не могу, с указателем понял, а по другому ни как?
Вот простой пример, в котором подчеркивает строку MyStruct s.karta [10] , не пойму почему, кто может объяснить?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>
using namespace std;
 
struct MyStruct {
char mast[4];
char karta[9];
}s;
 
void main(){
    setlocale(LC_ALL,"rus");
    cout<<"Вывод карт"<<endl;
    //s.mast[4]="Бубна";
    MyStruct s.karta [10] = {
    "Иванов", "Петров", "Сидоров",
    "Ахмедов", "Ерошкин", "Выхин",
    "Андеев", "Вин Дизель", "Картошкин", "Чубайс"
};
 
 
    system("pause");
}
Psilon
Master of Orion
 Аватар для Psilon
5738 / 4686 / 619
Регистрация: 10.07.2011
Сообщений: 14,160
Записей в блоге: 5
Завершенные тесты: 4
18.06.2014, 18:33     Ошибка при передаче в функцию #6
Леонид Каруна, потому что это вообще не по-русски (в смысле не по нормам С++) написано -> MyStruct s.
Леонид Каруна
0 / 0 / 0
Регистрация: 14.04.2013
Сообщений: 148
18.06.2014, 20:03  [ТС]     Ошибка при передаче в функцию #7
И последний вопрос, я не могу записать сразу в массив строк данные, тип такого:
C++
1
s.karta[size]={"fgdf","fgdf","fgdf","fgdf","fgdf","fgdf","fgdf","fgdf","fgdf","fgdf"};
Когда у меня числовой тип, то все в порядке, а если строки, то нет.
Если информация про это, как их заполнять?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.06.2014, 21:23     Ошибка при передаче в функцию
Еще ссылки по теме:

Порча указателя при передаче в функцию C++
Написать процедуру для суммирования матриц. Ошибка при передаче массива в функцию C++
C++ Ошибки преобразования при передаче указателя на функцию

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

Или воспользуйтесь поиском по форуму:
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,164
Завершенные тесты: 1
18.06.2014, 21:23     Ошибка при передаче в функцию #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
struct MyStruct {
char mast[4];
char karta[9];
}s;
int main()
{
    setlocale(LC_ALL,"rus");
    cout<<"Вывод карт"<<endl;
    strcpy(s.mast,"Буб");//Поместятся только 3 символа  
    strcpy(s.karta,"Иванов"); // не более 8 символов
     cout<<s.mast<<" "<<s.karta<<endl;
    system("pause");
}
Если нужен массив структур, то так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
struct MyStruct {
char mast[4];
char karta[9];
};
int main()
{
    setlocale(LC_ALL,"rus");
    MyStruct s[3]={ {"Буб","Иванов"},{"Пик","Петров"},{"Чер","Сидоров"} };
    cout<<"Вывод карт"<<endl;
    for(int i=0;i<3;i++)
        cout<<s[i].mast<<" "<<s[i].karta<<endl;
    system("pause");
}
Yandex
Объявления
18.06.2014, 21:23     Ошибка при передаче в функцию
Ответ Создать тему
Опции темы

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