使用指针错误LNK2019

时间:2014-11-09 17:40:44

标签: c++ c

我要创建一个使用指针和函数扩展数组的函数。我对编码很新,我不确定为什么我会收到错误LNK2019。我知道这意味着有一个未解决的外部,但我已经改变了一切相同的错误不断弹出。这是我的代码......

#include <iostream> 
#include <iomanip> 
#include <string> 
#include <cmath> 
#include <fstream> 
#include <vector> 

using namespace std;

int * newArray(int[], int);

int main()
{
    int arr[] = { 12, 21, 56, 49, 72, 18 };

    newArray(arr, 10);

    return 0;
}

int * newArray(int arr, int size)
{
    int *p;
    int arr2;
    int *amount = new int[size * 2];
    amount = &arr2;
    int i;
    p = &arr;

    for (i = 0; i<size * 2; i++)
    {
        if (i<size)
        {
            amount[i] = p[i];
        }
        else
        {
            amount[i] = 0;
        }
    }
    arr = arr2;

    return amount;
}

通常我宁愿通过引用传递一个变量来做这个,但是我需要使用一个指针,如果有人能指出我正确的方向,那将非常感激。

2 个答案:

答案 0 :(得分:0)

您的代码中存在许多错误。其中一些是这样的: -

int * newArray(int arr, int size)

您正在接受一个数组作为int。它应该是

int * newArray(int* arr, int size)

第二个是

arr = arr2;

arr是int *,arr2是int。

答案 1 :(得分:0)

你正在传递int arr []而newArray函数需要一个int,所以链接器正在寻找一些像 int * newArray(int arr [],int size)但找不到它