Chcialabym stworzyc funkcje, ktora bedzie alokowala dynamicznie pamiec i funkcje zwalniajaca pamiec:
Napisalam nastepujacy kod:
plik array.cpp:
#include "array.h"
#include
using namespace std;
double **new_array(double **A, int m, int n)
{
A=new double *[m];
for (int i=0;i
return A;
}
void del_array(double **A, int m)
{
for(int i=0;i delete []A;
}
Plik array.h ma postac:
#ifndef alloc_h_
#define alloc_h_
double **new_array(double **A, int m, int n);
void del_array(double **A, int m);
#endif
i w pliku main.cpp wywoluje powyzsze funkcje:
#include "array.h"
#include
using namespace std;
int main()
{
double **T;
int m=3;
int n=3;
new_array(T,m,n);
del_array(T, m);
}
Jednakze po kompilacji otrzymuje bledy:
nic.cpp:(.text+0x8): undefined reference to `std::ios_base::Init::~Init()'
nic.cpp:(.text+0x25): undefined reference to `std::ios_base::Init::Init()'
/tmp/cc-L2LGfD.o: In function `__cxx_global_var_init':
alloc_tab.cpp:(.text+0x8): undefined reference to `std::ios_base::Init::~Init()'
alloc_tab.cpp:(.text+0x25): undefined reference to `std::ios_base::Init::Init()'
/tmp/cc-L2LGfD.o: In function `new_array(double**, int, int)':
alloc_tab.cpp:(.text+0x84): undefined reference to `operator new[](unsigned int)'
alloc_tab.cpp:(.text+0xbb): undefined reference to `operator new[](unsigned int)'
/tmp/cc-L2LGfD.o: In function `del_array(double**, int)':
alloc_tab.cpp:(.text+0x135): undefined reference to `operator delete[](void*)'
alloc_tab.cpp:(.text+0x161): undefined reference to `operator delete[](void*)'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Bede niezmiernie wdzieczna za wskazanie mojego bledu/bledow.
Pozdr!