void f(char** c) {
с = whatever; //меняет локальное значение c. Значение за пределами функции не аффектится
*c = realloc(100500*sizeof(char)); //перевыделяем память. Меняем значение вне функции
**c = 'a';//меняем значение первого символа
}
void g() {
char* c = malloc(1050*sizeof(char));
f(&c);
}
Vadim kyklaed, нет, не так. Объявления переменных не надо менять. Надо поменять сигнатуру функции и передавать &р.
Насчёт реаллока, да, ты должен передать размер, умноженный на число. В данном случае это число - 2, и чего ты хочешь этим добиться? Ты выделить два байта и всё.