I fully agree with Zbynek in the advantages of the new and delete C++ operators over the C malloc/calloc/free allocation scheme. That said, knowing and understanding standard C allocation is absolutely necessary IMO to gain the required perspective, even if we are using C++.
If you are using PCL, my recommendation is to use the GenericVector<T> template class (see pcl/Vector.h). GenericVector<> is a lightweight yet powerful implementation of a list of items of constant length. It uses shared memory (reference counted, so you can return it as a value from a function for example) and is thread-safe (you can use a single vector from several parallel running threads).
If you want to use fixed-length sequences of float, then you should use the FVector template instantiation. For example:
FVector a( 10 ); // a vector of 10 float components
FVector b( 10 ); // another one
...
a[3] = .123F; // implements array subscript operators
...
b *= 4; // implements scalar-assignment operators
...
FVector c = a + b; // implements vector algebra
...
float d = a * b; // dot (scalar) product
...
FVector c = FVector( 1, 2, 3 ) ^ FVector( 4, 5, 6 ); // cross (vector) product
... and so on. If you have to interface with C libraries, it is also very easy. Just use the FVector::Begin() member function, or —more elegantly— FVector::operator *(). Both members return a pointer to the internal array of floats stored in the FVector object.