I have some code in C++ that uses an std::vector of std::strings to store an array of strings. I need to convert it into C. I thought that I would just create c versions of the functions I need (vector.back,vector.push_back,string.operator+=) but am getting lost in the double pointers. Can anybody lead me on the right track here?
std::vector and std::string do a lot of work internally. You'd probably be better off converting the 'what' instead of the 'how'. Ask yourself what the code is trying to accomplish and write C code to do it.
It's not all that difficult to do. Here's an example of push_back
const int BlockSize = 10; // allocate this number of elements at one time
int MaxArraySize = 0; // initial size of the array
int CurrentSize = 0; // current number of elements used in the array
char** array = 0;
MaxArraySize += BlockSize;
array = realloc(array,MaxArraySize);
char* push_back(const char* item)
if( (CurrentSize+1) >= MaxArraySize )
array[CurrentSize] = malloc(strlen(item)+1);
Isn't it about time forums rewarded their contributors?
Earn rewards points for helping others. Gain kudos. Cash out. Get better answers yourself.
It's as simple as contributing editorial or replying to discussions labeled
OP Sponsor or