%s
ожидает char *
. Не разыменовывайте указатель в main()
. Там это не двойной указатель, это уже правильный тип. Вам лучше переименовать его в pointer
, чтобы не путать себя.
int main() {
char* pointer = NULL;
modify(&pointer);
printf("%s\n", pointer);
}
Кроме того, в modify()
не следует выделять память для double_pointer
.
// point double_pointer to pointer
<strike>double_pointer = malloc(sizeof(char*));</strike>
*double_pointer = pointer;
printf("%s\n", *double_pointer); //prints test