Исправить функцию, возвращающую указатель на строку - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, не подскажите, как нужно подправить код?
char* GetString()
{
char x[100]; // локальный массив
scanf("%100s", &x);
return x;
}
Эта лишь часть от целого, сама программа функционирует, но вот мне сказали, что эта часть кода некорректна. И если можно, то напишите, как можно подробнее. Спасибо.

Решение задачи: «Исправить функцию, возвращающую указатель на строку»

textual
Листинг программы
static char x[100];

Объяснение кода листинга программы

  1. Объявляется статическая переменная типа char массив x с размером 100 элементов.
  2. В памяти выделяется 100 байт для хранения значений типа char.
  3. При использовании данной переменной необходимо учитывать, что её размер составляет 100 байт, а не 100 символов.
  4. При использовании данной переменной необходимо учитывать, что она является непотокобезопасной.
  5. При использовании данной переменной необходимо учитывать, что её значение не будет изменяться в процессе выполнения программы.
  6. При использовании данной переменной необходимо учитывать, что она не имеет типа, который поддерживает концепцию нулевого значения.
  7. При использовании данной переменной необходимо учитывать, что она не поддерживает операции инкремента и декремента.
  8. При использовании данной переменной необходимо учитывать, что она не поддерживает операции сравнения на равенство и неравенство.
  9. При использовании данной переменной необходимо учитывать, что она не поддерживает операции присваивания.
  10. При использовании данной переменной необходимо учитывать, что она не поддерживает операции арифметических вычислений.
  11. При использовании данной переменной необходимо учитывать, что она не поддерживает операции логического вывода.
  12. При использовании данной переменной необходимо учитывать, что она не поддерживает операции индексации и обращения к элементу массива.
  13. При использовании данной переменной необходимо учитывать, что она не поддерживает операции побитового логического вывода.
  14. При использовании данной переменной необходимо учитывать, что она не поддерживает операции битовых операций.
  15. При использовании данной переменной необходимо учитывать, что она не поддерживает операции динамического создания объектов.
  16. При использовании данной переменной необходимо учитывать, что она не поддерживает операции связывания.
  17. При использовании данной переменной необходимо учитывать, что она не поддерживает операции доступа к элементам массива по индексу.
  18. При использовании данной переменной необходимо учитывать, что она не поддерживает операции цикла while.
  19. При использовании данной переменной необходимо учитывать, что она не поддерживает операции цикла do-while.
  20. При использовании данной переменной необходимо учитывать, что она не поддерживает операции цикла for.

Оцени полезность:

13   голосов , оценка 4.538 из 5
Похожие ответы