'Copying a certain number of characters from one pointer to another

I have a source pointer (pSource) and a goal pointer (pGoal). I also have a number of characters (n) that need to be copied to the pGoal from pSource.

I thought that I can just copy what's in the pSource to pGoal and move both pointers to the next location. (Both are pointing at the start at the beginning).

for (int i = 0; i < n; i++) {
     pGoal+i = pSource+i;
}


Solution 1:[1]

Assuming that your pointers are of type char *, the correct way of doing this is:

for (int i = 0; i < n; i++) {
    *(pGoal+i) = *(pSource+i);
    // or pGoal[i] = pSource[i]
}

You can also check memcpy

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 vasile_t