我要创建一个使用指针和函数扩展数组的函数。我对编码很新,我不确定为什么我会收到错误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;
}
通常我宁愿通过引用传递一个变量来做这个,但是我需要使用一个指针,如果有人能指出我正确的方向,那将非常感激。
答案 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)但找不到它