I think you mean info.tab to to be a pointer to a char string, so you should have
info.tab = malloc(sizeof(char) * 10);
Your version will allocate more memory that is necessary to hold 10 chars, but that shouldn't stop it working.
Also, change_dir() may set the index into this array to be outside the memory allocated to it (e.g. index of -1), which could have dire consequences.