I try to change a value of a char inside a function, but it doesn't work, I can't change the main function and the function call
typedef char* char_array;
int change(char_array arr, int index, char c){
int length = 6;
char *new_array = calloc(length, sizeof(char_array));
new_array = arr;
str = calloc(length, sizeof(char_array));
if(index >= 0 && index <= length){
for(int i = 0; i < length; i++){
if(i == index){
arr[i] = c;
}else{
arr[i] = new_array[i];
}
}
return 0;
}else{
return -1;
}
}
int main(){
char_array arr = "Hello!";
change(arr, 5, ' ');
printf("%s", arr);
}
correct print: Hello but print: Hello!