Я собираюсь отлаживать чужой код, и я наткнулся на определенный «способ» обработки глобальных массивов, который я считаю глубоко плохим, но тот, кто первым использовал его, клянется в этом.
Мне нужно найти аргументы против этого.
Вот код, написанный упрощенно (это не оригинальный код, просто абстрагированная версия)
Итак, мой вопрос: какие аргументы вы бы выдвинули (или, может быть, какой-то код, приводящий к этому методу)?
int test(int i, int v, int type, int** t)
{
static int *teeest;
int result = 0;
switch(type)
{
case (1):
{
int testarr[i];
teeest = testarr;
}
break;
case (2):
result = teeest[i];
break;
case (3):
teeest[i] = v;
break;
}
if (t != NULL)
{
*t = teeest;
}
return result;
}
int main()
{
int *te = (int*)1;
test(5, 0, 1, &te);
printf("%p\n", te);
int i=0;
for(;i<5;i++)
{
test(i, i, 3, NULL);
printf("Value: %d\n", test(i,0,2, NULL));
}
return 0;
}