Мне нужен массив пользовательских структур.casting a struct in c
struct user {
char *username;
};
struct user users[10]; //Array of user structs
int main(int argc, char **args) {
int initUsersArray();
char *username = "Max";
addToUsersArrry(username);
}
int addToUsersArrry(username) {
int i;
i = 0;
struct user tmp;
for(i;i<10;i++) {
if(users[i] != NULL)
if(strcmp(*users[i].username,username)==0)
return -1;
}
i = 0;
for(i;i<10;i++) {
if(users[i] = NULL) {
users[i]=tmp;
users[i].username=username;
return 1;
}
}
}
int initUsersArray() {
int i;
i=0;
struct user tmp;
for(i;i<10;i++) {
users[i] = (struct user*) calloc(1,sizeof(tmp));
}
}
Мой первый вопрос: если это правильный способ инициализировать массив пользователей с помощью NULL, как я. Вторая проблема заключается в том, что * Пользователи [i] .username и другие части кода, где хотите получить/установить пользователя в определенной позиции, не работают. С уважением
Вы точно скопировали код? –
Я обновил одну строку, но остальная часть кода скопирована. Я новичок в c, поэтому не удивляйтесь, если я написал «странный» код. – user1324258
Вы должны использовать пустую строку или '\ 0' вместо NULL, т. Е. "". – Thor