Конвертировать код C, удаляя видимые указатели - PullRequest
0 голосов
/ 25 октября 2018

Я студент по информатике, и у меня есть проект на C.Я начал проект несколько недель назад и теперь понял, что мне вообще не разрешают использовать указатели, потому что наш учитель сказал так (мы не должны были их видеть).Но мой код полон их, на самом деле!

Что я имею в виду под «не использовать указатели», это «не использовать очевидные указатели».Например, использование массива совершенно нормально, поскольку мы не знаем, что происходит за кулисами.

Поэтому я подумал об использовании регулярного выражения для преобразования всего моего кода следующим образом:

void increment(int *a){
  (*a)++;
}
int a = 12;
increment(&a);
printf("%d", a);
*От 1009 * до
void increment(int a[1]){
  a[0]++;
}
int a[1] = {12};
increment(a);
printf("%d", a[0]);

Другая проблема связана с массивами переменной длины, в которых я использовал malloc, и я не вижу другого решения, кроме как везде ставить произвольные длинные и фиксированные размеры.

Да, это кажется совершенно глупым (по крайней мере, мне), но именно так мой учитель хочет, чтобы мы кодировали или думали о вещах иначе.И если я сделаю такое регулярное выражение, я почувствую, что мне нужны указатели и я избежал проблемы.

У вас есть идеи?

Или вы знаете какой-нибудь уже существующий инструмент для преобразования в такоекстати код C?

Спасибо!

...