Во-первых, у вас проблема в том, что я не думаю, что вы понимаете, что такое указатель:
what_if *what_if_var;
...
what_if_var[m]='\0';
Вы создали указатель на структуру What_if
, никогда ничего не выделяете, затем попытаетесь использовать его (и как их массив)
У вас также нет правильной подписи для main()
int main(int argc, char* argv[])
Как отмечено прямым комментарием к вашему вопросу, это указывает на то, что вы действительно не понимаете основ языка, и вводная книга в порядке.
При этом вам нужен массив ваших структур, размер которых передается через argv
(после преобразования его из char * в int), и внутри структуры вам нужно иметь char *
указатель. Для каждой вещи, которую вы хотите сохранить, вам нужно будет malloc()
или использовать strdup()
, а затем назначить ее указателю в вашей структуре.