I'm working on a C++ application that will build a fixed-length record from a set of database fields. I'm writing a function that will accept the output record as a `char*`, the string to write, and the total length of the field. The purpose of the function is to copy the string to the current position of the char pointer, and then fill the rest of the length with spaces. Here's a simplified example of what I'm doing.

```
void writeOut(char* output, string data, const int length) {
    if ((int) data.size() > length) {
        //Just truncate it
       data = data.substr(0, length);
    }
    int index = 0;
    while (index < (int) data.size()) {
        *output++ = data[index++];
    }
    while (index++ < length) {
        *output++ = ' ';
    }
}

int test() {
    char output[100];
    writeOut(output, "test1", 10);
    writeOut(output, "test2", 10);
    writeOut(output, "test3test4test5", 10);
    cout << output;
}

```

I expected to see something like this.

```
test1     test2     test3test4                  

```

Instead all I get is...

```
test3test4

```

So it's incrementing the `char*` within the function, but only within the function. When the function ends the `char*` is right back where it started. Is it possible to pass a pointer in such a way that the pointer is updated in the calling function?

In case you can't tell, I'm pretty new to C++. Any suggestions will be appreciated.