I'm trying to implement a function that concatenate two strings, but I keep getting the same error. "pointer being realloc'd was not allocated" When I compiled the same code on a windows machine it worked, is it something that I'm missing? The code below is basically what I'm trying to do. main:
int main() {
int length = 4096;
char *string = malloc(length * sizeof(char));
createString(string, length);
realloc(string, 30);
return 0;
}
createString:
void createString(char * string, int length) {
  char *copyAdress = string;
  char *temp ="";
  int counter2 = 0;
  fflush(stdin);
  fgets(string, length,stdin);
  while(*string != EOF && *string != *temp ) {
    string++;
    counter++;
  }
  string = copyAdress;
  realloc(string, (counter)*sizeof(char));
}
Thanks! Edit: I want createString to change the size of string to the length of the string that I get with fgets, while having the same address as the string that I sent in, so I can allocate more memory to it later when I want to add another string to it.
 
     
     
     
     
    