Здесь
typedef struct Info *infoPtr;
infoPtr
относится к типу struct Info*
, это
infoPtr* info=(infoPtr)malloc(sizeof(infoPtr)); /* info will be of struct Info** type */
должно быть
infoPtr info = malloc(sizeof(*infoPtr)); /* typecasting is not required */
Примечание, его не считаюткак хорошая практика для typedef
указателя, прочитайте Это хорошая идея, чтобы печатать указатели?
Также здесь
info->name=strup(name);
вы хотели использовать strdup()
вместо strup()
например,
info->name=strdup(name);
Приходите к вашему вопросу ВСЕ, что я хочу, это правильно передать строку символа в имя? Да, как вы передали аргумент enter()
правильный, кроме typedefing struct указатель .И передавая строковый литерал google
как
enter("google");
и определяя enter()
как
void enter(char *name){ /* Its correct */
/* play with name */
}