la virgola in c separa 2 espressioni, la prima viene solo eseguita, quella che viene valutata è la seconda, per cui
a[strcpy(m, x), 2] è un modo idiota per scrivere
a[2];
codice:#include <stdio.h> int main() { int a[] = {1,2,3,4,5,6,7,8,9,0}; printf("%d\n", a[printf("salve\n"), 2]) ; printf("%d\n", a[2]); }