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

Не понимаю ошибку invalid conversion from 'int' to 'int*

11.11.2016, 12:43. Показов 5708. Ответов 4
Метки нет (Все метки)

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
#include <iostream>
#include <cstdlib>
 
using namespace std;
 
int swap (int *a, int *b, int *c)
{
    int temp=*a;
    *a=*b;
    *b=*c;
    *c=temp;
    //cout<<temp;
    return 0;
}
 
 
int main() 
{
    int ca,cb,cc;
    cout<<"Vedite 1 chislo \n";
    cin>>ca;
    cout<<"Vedite 2 chislo \n";
    cin>>cb;
    cout<<"Vedite 3 chislo \n";
    cin>>cc;
    int *prtca;
    prtca=&ca;
    int *prtcb;
    prtcb=&cb;
    int *prtcc;
    prtcc=&cc;
    swap (*prtca, *prtcb, *prtcc);
    cout<<ca<<endl;
    cout<<cb<<endl;
    cout<<cc<<endl;
     system("pause");
 
    return 0;
}
При компиляции выдает ошибки

32 27 D:\Dev-Cpp\ïðîåêòû\ïðîåêò 1\main.c [Error] invalid conversion from 'int' to 'int*' [-fpermissive]
6 5 D:\Dev-Cpp\ïðîåêòû\ïðîåêò 1\main.c [Error] initializing argument 1 of 'int s(int*, int*, int*)' [-fpermissive]
32 27 D:\Dev-Cpp\ïðîåêòû\ïðîåêò 1\main.c [Error] invalid conversion from 'int' to 'int*' [-fpermissive]
6 5 D:\Dev-Cpp\ïðîåêòû\ïðîåêò 1\main.c [Error] initializing argument 2 of 'int s(int*, int*, int*)' [-fpermissive]
32 27 D:\Dev-Cpp\ïðîåêòû\ïðîåêò 1\main.c [Error] invalid conversion from 'int' to 'int*' [-fpermissive]
6 5 D:\Dev-Cpp\ïðîåêòû\ïðîåêò 1\main.c [Error] initializing argument 3 of 'int s(int*, int*, int*)' [-fpermissive]

Я не могу понять в чем ошибка. Если что то тривиальное не пинайте сильно .
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.11.2016, 12:43
Ответы с готовыми решениями:

[Error] invalid conversion from 'int' to 'int*' [-fpermissive]
Возникли ошибки при компиляции: invalid conversion from 'int' to 'int*' wrong type argument...

Error: invalid conversion from 'int' to 'int (*)[10]' [-fpermissive]
#include &lt;iostream&gt; using namespace std; void SPS(int x, int y, int T) { int i, j, aux,...

Invalid conversion from 'int**' to 'int' [-fpermissive]
Эта ошибка в строке 7 файла Vector2D.cpp // Vector2D.hpp typedef int SizeX; typedef int...

Выдает ошибку invalid conversion from "int*" to "int"
Добрый вечер! Что за ошибка?invalid conversion from &quot;int*&quot; to &quot;int&quot; #include &lt;cstdlib&gt;...

4
59 / 54 / 34
Регистрация: 18.04.2014
Сообщений: 122
11.11.2016, 12:51 2
bagyga,
C++
1
swap (*prtca, *prtcb, *prtcc);
разыменовывать указатели не нужно, т.е.
C++
1
swap (prtca, prtcb, prtcc);
0
0 / 0 / 0
Регистрация: 11.11.2016
Сообщений: 3
11.11.2016, 12:58  [ТС] 3
Mathist, поясни почему в этом коже тогда без ошибок
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
#include <iostream>
#include <cstdlib>
 
using namespace std;
 
int swap (int *a, int *b) 
{
    *a=*a+*b;
    *b=*a-*b;
    *a=*a-*b;
    return 0;
}
 
 
int main() 
{
    int ca, cb;
    cout<<"Vedite 1 chislo \n";
    cin>>ca;
    cout<<"Vedite 2 chislo \n";
    cin>>cb;
    int *prtca=&ca;
    int *prtcb=&cb;
    swap(*prtca, *prtcb);
    cout<<ca<<endl;
    cout<<cb<<endl;
     system("pause");
 
    return 0;
}
А так да заработал код
0
59 / 54 / 34
Регистрация: 18.04.2014
Сообщений: 122
11.11.2016, 13:03 4
Во втором варианте вызывается стандартная функция из библиотеки swap, а не твоя. Можешь это проверить добавив в твою функцию cout << "My function!!!" << endl;. Это происходит потому, что фактические параметры, которые ты подставляешь в swap не соответствуют формальным параметрам твоей функции. Если опять таки будешь передавать указатели без разыменовывания (уберешь *), то будет вызываться твоя функция.
0
0 / 0 / 0
Регистрация: 11.11.2016
Сообщений: 3
11.11.2016, 13:12  [ТС] 5
Mathist, СПС понял
0
11.11.2016, 13:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.11.2016, 13:12
Помогаю со студенческими работами здесь

Invalid conversion from int to int**
При компиляции ошибка invalid conversion from 'int' to 'int**' , помогите пожалуйста. Вероятнее...

20: invalid conversion from `int (*)()' to `char'
помогите исправит ошибку-20: invalid conversion from `int (*)()' to `char' #include &lt;iostream&gt;...

Invalid conversion from `int' to `const char*'
Здравствуйте.Возникла проблема с типами данных, пытался решить - стало хуже...:wall: Вот сам код:...

Ошибка invalid conversion from 'char*' to 'int'
Задание: ввести максимальное количество строк, затем вводить строки, пока не наберется 5 строк с...


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

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

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