Просто простая программа, чтобы привыкнуть к указателям. Предполагается, что программа помещает содержимое части моей памяти в массив символов в порядке, обратном тому, как читается память. И.Е. глядя на нисходящий адрес памяти, и я хочу сохранить его в порядке убывания в символьном массиве.
Мой компилятор постоянно говорит мне:
"ошибка несовместимых типов в присваивании"
На линии с функцией realloc
Что я делаю не так? Мне кажется, что и "reverse", и результат realloc должны быть указателями на тип char?
Мой код:
int main(){
char first[]="hello mark", strng='h', reverse[]="";
char* ptr=&first[10];
int i=0;
while(ptr > (&strng-0xf4240)){
printf("%c", *ptr--);
reverse = realloc(reverse, (i++ * sizeof(char)));
reverse[strlen(reverse)-i] = *ptr;
}
printf("%s", reverse);
return 0;
}
Спасибо!
EDIT:
Извините, я неправильно разместил их как комментарии ниже
Спасибо за помощь, первый и второй комментарий получили! У меня есть необходимые #include, я просто забыл скопировать их в переполнение стека. Вы были правы, теперь я застрял на ненулевой завершенной функции strlen (). Я решу это самостоятельно. Еще раз спасибо!
Я говорил слишком рано, все скомпилировано, но есть логическая ошибка. Цикл while будет выполнен один раз. Тем не менее, последующие циклы по-прежнему не удается, независимо от начального значения i. Строка, которая вызывает сбой, является строкой, которая вызывает realloc