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

Ошибка LNK2019 - C++

Восстановить пароль Регистрация
 
alexlap95
0 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 4
16.01.2013, 02:41     Ошибка LNK2019 #1
Помогите разобраться с этой ошибкой. В программировании я еще новичок, поэтому не все пока понимаю.
Задача состоит в том что надо перемножить 2 массива любой размерности.
И получаются у меня такие ошибки
1>------ Построение начато: проект: exersice1, Конфигурация: Debug Win32 ------
1> main.cpp
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ "int __cdecl mas1(int *,int)" (?mas1@@YAHPAHH@Z) в функции _main
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ "int __cdecl mas2(int *,int)" (?mas2@@YAHPAHH@Z) в функции _main
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ "int __cdecl mul(int *,int *,int *,int)" (?mul@@YAHPAH00H@Z) в функции _main
1>C:\Users\Home\Desktop\exersice1\Debug\exersice1.exe : fatal error LNK1120: неразрешенных внешних элементов: 3
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========

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
66
67
68
69
70
stdafx.h
#pragma once
#include "targetver.h"
#include <stdio.h>
#include <tchar.h>
#include <iostream>
using namespace std;
int mas1(int*a, int m);
int mas2(int*b, int m);
int mul (int*a,int*b,int*c,int m);
extern int i,j,k,n,m;
 
main.cpp
#include "stdafx.h"
 
void main()
{ int i,j,m;
    cin>>m;
    int **a = new int*[m]; 
        for (i=0; i<m;i++)
        {a[i]=new int[m];}
    int **b = new int*[m]; 
        for (i=0; i<m;i++)
        {b[i]=new int[m];}
    int **c=new int*[m];
        for(i=0;i<m;i++)
        {c[i]=new int[m];}
 
    mas1(*a,m);
    mas2(*b,m);
    mul(*a,*b,*c,m);
    cout<<endl;
        for (i=0; i<m;i++)
        {for(j=0;j<m;j++)
            {cout<<c[i][j]<<'\t';}
        cout<<'\n'; }
    return ;
}
 
exersice1.cpp
#include "stdafx.h"
 
int i,j;
int mas1(int**&a, int m)
{
        for(i=0;i<m;i++)
        for (j=0; j<m;j++)
        {cin>>a[i][j];}
        return **a;
}
int mas2(int**&b, int m)
{
        for(i=0;i<m;i++)
        for (j=0; j<m;j++)
        {cin>>b[i][j];} 
        return **b;
}
int mul (int**a,int**b,int**&c,int m)
{int r=0,k,n;
        for (k=0;k<m;k++)
            {for (n=0;n<m;n++)
            { int number=0;
                while (number<m)
                {for (i=0;i<m;i++)
                    {r+=a[n][i]*b[i][k];}
                    number++;
                    c[n][k]=r;
                    r=0;}}}
        return **c;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2013, 02:41     Ошибка LNK2019
Посмотрите здесь:

C++ Ошибка LNK2019
Ошибка LNK2019 C++
Ошибка LNK2019 C++
Ошибка LNK2019 C++
Ошибка LNK2019 C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Саня gamer
96 / 70 / 1
Регистрация: 18.05.2011
Сообщений: 343
Записей в блоге: 1
16.01.2013, 02:55     Ошибка LNK2019 #2
сравни заголовки с exersice1.cpp и stdafx.h
первый аргумент у всех трёх функциях не соответствует реализации
alexlap95
0 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 4
16.01.2013, 03:05  [ТС]     Ошибка LNK2019 #3
А можете посоветовать как стоит изменить тут?
А то я попробовал изменить, но ошибки не убрались..
Саня gamer
96 / 70 / 1
Регистрация: 18.05.2011
Сообщений: 343
Записей в блоге: 1
16.01.2013, 03:17     Ошибка LNK2019 #4
я не пользовался етой штукой.
наверное лучше написать отдельный хидер для exersice1.cpp, в препроцсорной обёртке, и подключить в stdafx.h
C++
1
2
3
4
5
6
7
8
9
10
#ifndef HEADER_H
#define HEADER_H
int i,j;
int mas1(int**&a, int m)
 
int mas2(int**&b, int m)
 
int mul (int**a,int**b,int**&c,int m)
 
#endif
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
16.01.2013, 05:12     Ошибка LNK2019 #5
такое впечатление, что ты плохо понимаешь, что такое аргументы функции, а также, зачем к указателю иногда применяют оператор *, а иногда нет. Давно Си изучаешь?
C++
1
2
3
4
5
6
7
8
int mas(int** x, int m);
int mul (int** x, int** y,int**z,int m);
...
...
...ниже в мейне
 mas(a,m);
 mas(b,m);
 mul(a,b,с,m);
alexlap95
0 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 4
16.01.2013, 13:21  [ТС]     Ошибка LNK2019 #6
Спасибо, это помогло)
С++ изучаю 4 месяца, в универе.
Но тут я просто запутался.
Yandex
Объявления
16.01.2013, 13:21     Ошибка LNK2019
Ответ Создать тему
Опции темы

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