tab[i] = argv[1];
strcat(tab[i], "ab");
Вы не можете добавлять вещи в строки argv
.Это блоки фиксированного размера без дополнительного пространства.Добавление вызывает неопределенное поведение.
Также, даже если бы вы могли добавлять каждый раз argv[1]
вместо argv[i]
.
Решение: (a)Измените argv[1]
на argv[i]
и (b) скопируйте каждый аргумент перед его добавлением.