Так как неясно, какое поведение undefined, а что нет в C, мне интересно, является ли доступ к элементу массива с помощью char поведением undefined. Например:
char c = 'A';
int a[3000];
printf("%i\n", a[c]);
Я знаю, что на самом деле символы и ints являются взаимозаменяемыми, но все же я не уверен.