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

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

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

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

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

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

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

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
6322 / 5906 / 1913
Регистрация: 18.12.2011
Сообщений: 15,189
Завершенные тесты: 1
18.06.2014, 17:58     Ошибка при передаче в функцию #2
Цитата Сообщение от Леонид Каруна Посмотреть сообщение
void karta(MyStruct s.karta[],int size);
C++
1
void karta(MyStruct sss,int size);
dzrkot
zzzZZZ...
519 / 349 / 53
Регистрация: 11.09.2013
Сообщений: 1,996
18.06.2014, 17:59     Ошибка при передаче в функцию #3
void karta(MyStruct *karta,int size)
Psilon
Master of Orion
Эксперт .NET
5883 / 4780 / 633
Регистрация: 10.07.2011
Сообщений: 14,405
Записей в блоге: 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
Эксперт .NET
5883 / 4780 / 633
Регистрация: 10.07.2011
Сообщений: 14,405
Записей в блоге: 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++
Доброго времени суток, столкнулся с данной проблемой в CLI, попробовал реализовать аналог для консольного приложения всё работает, почему...

Неправильная длина строки при передаче в функцию - C++
странная работа компилятора(строки) в кратце проблема выглядет так определяем переменную типа широкой строки считаем ее длину...

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

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


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

Или воспользуйтесь поиском по форуму:
zss
Модератор
Эксперт С++
6322 / 5906 / 1913
Регистрация: 18.12.2011
Сообщений: 15,189
Завершенные тесты: 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     Ошибка при передаче в функцию
Ответ Создать тему
Опции темы

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