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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Леонид Каруна
0 / 0 / 0
Регистрация: 14.04.2013
Сообщений: 153
#1

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

18.06.2014, 17:54. Просмотров 319. Ответов 7
Метки нет (Все метки)

Хочу передать в функцию строку и там ее заполнить, подчеркивает
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){
 
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.06.2014, 17:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка при передаче в функцию (C++):

Ошибка при передаче параметра в функцию - C++
В ДЗ есть пример кода, помогите пожалуйста исправить, до работающего варианта (VS2015). Ошибки: (32) error C2660: strcpy_s: функция не...

Ошибка при передаче двумерного массива в функцию - C++
Помогите пожалуйста, никак не могу разобраться. Я хочу чтобы функция createBlankGameField() ввела данные в массив gameField созданный в...

Ошибка при передаче двумерного массива в функцию - C++
cannot convert 'int (*)' to 'int**' for argument '1' to 'void func(int**, int, int)' #include&lt;iostream&gt; using namespace std; ...

Ошибка при передаче в функцию указателя на элемент массива - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;cstdlib&gt; #include &lt;cmath&gt; const int n = 20; int...

Ошибка при передаче двумерного массива в функцию std::thread - C++
Здравствуйте! Написал программу на потоки, теперь нужно передать туда двумерный массив. Пытаюсь передать по ссылке, но каждый раз...

Написать процедуру для суммирования матриц. Ошибка при передаче массива в функцию - C++
Помогите пожалуйста! Дано задание: Написать процедуру для суммирования матриц. С ее помощью сложить исходную матрицу и...

7
zss
Модератор
Эксперт С++
6485 / 6048 / 1985
Регистрация: 18.12.2011
Сообщений: 15,684
Завершенные тесты: 1
18.06.2014, 17:58 #2
Цитата Сообщение от Леонид Каруна Посмотреть сообщение
void karta(MyStruct s.karta[],int size);
C++
1
void karta(MyStruct sss,int size);
1
dzrkot
zzzZZZ...
519 / 349 / 53
Регистрация: 11.09.2013
Сообщений: 2,004
18.06.2014, 17:59 #3
void karta(MyStruct *karta,int size)
1
Psilon
Master of Orion
Эксперт .NET
5902 / 4799 / 634
Регистрация: 10.07.2011
Сообщений: 14,407
Записей в блоге: 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){
 
}
1
Леонид Каруна
0 / 0 / 0
Регистрация: 14.04.2013
Сообщений: 153
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");
}
0
Psilon
Master of Orion
Эксперт .NET
5902 / 4799 / 634
Регистрация: 10.07.2011
Сообщений: 14,407
Записей в блоге: 5
Завершенные тесты: 4
18.06.2014, 18:33 #6
Леонид Каруна, потому что это вообще не по-русски (в смысле не по нормам С++) написано -> MyStruct s.
0
Леонид Каруна
0 / 0 / 0
Регистрация: 14.04.2013
Сообщений: 153
18.06.2014, 20:03  [ТС] #7
И последний вопрос, я не могу записать сразу в массив строк данные, тип такого:
C++
1
s.karta[size]={"fgdf","fgdf","fgdf","fgdf","fgdf","fgdf","fgdf","fgdf","fgdf","fgdf"};
Когда у меня числовой тип, то все в порядке, а если строки, то нет.
Если информация про это, как их заполнять?
0
zss
Модератор
Эксперт С++
6485 / 6048 / 1985
Регистрация: 18.12.2011
Сообщений: 15,684
Завершенные тесты: 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");
}
1
18.06.2014, 21:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.06.2014, 21:23
Привет! Вот еще темы с ответами:

Теряется строка при передаче в функцию - C++
Привет Замучался копать уже. Теряется строка при передаче её в функцию. Код такой: char* Read() { char str = &quot;1 2 3 4&quot;; ...

Порча указателя при передаче в функцию - C++
Добрый вечер. Проблема такая - при передаче в функцию структуры, полем которой является указатель на указатель, последний портится....

Не работает класс при передаче в функцию объекта - C++
Всем привет, я не пойму подскажите куда правильно подставить #include &quot;doodler.h&quot; чтобы не было ошибок. Есть класс, который содержит...

Выдает ошибку при передаче массива в функцию - C++
Ругается на 59 строку: 2.cpp(59): error C2664: otn: невозможно преобразовать параметр 4 из &quot;double **&quot; в &quot;double&quot; Не существует...


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

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

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