Исходный код#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <locale.h>
void get_str ( char *str )
{
int i;
char c = getchar ( );
for ( i = 0; c != EOF && c != '\n'; i++ )
{
str[i] = c;
c = getchar ( );
}
str[i] = '\0';
}
int main ( void )
{
setlocale ( LC_ALL, "RUSSIAN" );
char str = 0, *pStr = &str;
get_str ( pStr );
for ( int i = 0; pStr[i] != '\0'; i++ )
{
printf ( "\n->%c", pStr[i] );
}
free ( pStr );
return 0;
}
Цель программы: записать строку с использованием указателей (имитация gets).
Комментарий: в visual studio 2019 при отладке выскакивает точка останова без какой либо информации (все введенные символы выводятся). На 2х других Онлайн компиляторах выскакивает проблема по типу "free(): invalid pointer" и не выводится последний введенный символ, либо проблемы не видят и обрабатывают так, чтоб мой кривой код хоть как то работал.
Попросту копировать реализацию gets я не желаю, поскольку полностью осознать его я пока не могу.
Вопрос: Подскажите глупому, где же он допустил ошибки?