Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 258
  • Last Modified:

Pointer arrays...

I have 7 pointer arrays which for a particular method, I will have to condense into one....

char *configFilegr = {"GR_1"..}
char *configFilegr2 = ....

How would I do that???
0
jewee
Asked:
jewee
1 Solution
 
jkrCommented:
You could use a function like

char** merge_arrays( char** p1, unsigned int n1, char** p2, unsigned int n2) {

    char** p = new char*[n1 + n2];

    memcpy(p, p1, n1);
    memcpy(p + n1, p2, n2);
}

But, I'd *strongly* advise to use std::vecors or any other STL container for that, since they're way easier to handle
0
 
rstaveleyCommented:
Here's a std::vector approach...

--------8<--------
#include <iostream>
#include <vector>
#include <iterator>
using namespace std;

template <typename T>
vector<T> merge_arrays(T* arr1,size_t arr1_sz,T* arr2,size_t arr2_sz)
{
      vector<T> retval;
      retval.reserve(arr1_sz+arr2_sz);
      retval.insert(retval.end(),arr1,arr1+arr1_sz);
      retval.insert(retval.end(),arr2,arr2+arr2_sz);
      return retval;
}

int main()
{
      const char *arr1[] = {"one","two"};
      const char *arr2[] = {"three","four","five"};
      vector<const char*> v = merge_arrays(arr1,2,arr2,3);
      cout << "Counting: ";
      copy(v.begin(),v.end(),ostream_iterator<const char*>(cout," "));
      cout << '\n';
}
--------8<--------
0

Featured Post

[Webinar] Database Backup and Recovery

Does your company store data on premises, off site, in the cloud, or a combination of these? If you answered “yes”, you need a data backup recovery plan that fits each and every platform. Watch now as as Percona teaches us how to build agile data backup recovery plan.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now