How to copy or concatenate two char*

c++, strcat, strcpy

Solution

I would guess that i would need to allocate memory to totalLine?

Yes, you guessed correctly. `totalLine` is an uninitialized pointer, so those `strcpy` calls are attempting to write to somewhere random in memory.

Luckily, as you've tagged this C++, you don't need to bother with all that. Simply do this:

#include <string>

std::string line1 = "hello";
std::string line2 = "world";

std::string totalLine = line1 + line2;

No memory management required.

does the following copy memory or copy data?

I think you mean "is the underlying string copied, or just the pointer?". If so, then just the pointer.

Problem

How do you concatenate or copy char* together? ``` char* totalLine; const char* line1 = "hello"; const char* line2 = "world"; strcpy(totalLine,line1); strcat(totalLine,line2); ``` This code produces an error! ``` segmentation fault ``` I would guess that i would need to allocate memory to totalLine? Another question is that does the following copy memory or copy data? ``` char* totalLine; const char* line1 = "hello"; totalLine = line1; ``` Thanks in advance! :)

Original source

Related problems