Я пытался создать программу для вставки данных в массив, и я хотел сделать это с помощью указателей, чтобы я мог создать новый массив и использовать указатели, чтобы просто указывать на него. Но я получил ошибку, и другие вопросы SO не помогли. КОД:
#include <iostream>
using namespace std;
bool insert(int arr[], int size, int elem, int pos);
int main()
{
// Create a array
int arrayData[] = {0, 3, 4, 3};
int *arrptr = arrayData;
int size = sizeof(arrayData) / sizeof(*arrayData);
int elem = 6, pos = 3;
// insert the element to position pos
insert(arrptr, size, elem, pos);
return 0;
}
bool insert(int *arr[], int size, int elem, int pos)
{
int newArray[size + 1];
for (int i = 0; i < size + 1; i++)
{
if (i < pos)
{
newArray[i] = *arr[i];
}
else if (i == pos)
{
newArray[i] = elem;
}
else
{
newArray[i] = *arr[i - 1];
}
}
*arr = newArray;
return true;
}
ОШИБКА:
/tmp/ccwuU0I9.o: In function `main':
arrayInsertion.cpp:(.text+0x61): undefined reference to `insert(int*, int, int, int)'
collect2: error: ld returned 1 exit status