следующие работы успешно:Почему перераспределить терпит неудачу с временной указатель
char *op, op_temp;
op = malloc(len+1);
op_temp = op;
op = realloc(op, ++len);
в то время как следующие приводит к ошибке во время выполнения:
char *op, op_temp;
op = malloc(len+1);
op_temp = op;
op = realloc(op_temp, ++len);
Почему так что даже если тот же кусок памяти перераспределены?
'символ * оп, op_temp' и' символ * оп, op_temp' одинаковы. Вот почему я не ставил '*' рядом с именем типа (проще ожидать, что оба 'op' и' op_temp' будут указателями). – woytaz
@woytaz Да, вы правы. Извините за ошибку. В моей голове я хотел сказать, что 'char * op, op_temp' понятен, потому что звездочка привязана к переменной, в то время как' char * op, op_temp' является неоднозначной, потому что она похожа на 'char *' будет применяться к обеим переменным. – Chostakovitch