-2
を返す私は、このヘッダファイルがあります。 C - エラー構造体
typedef char *cadena;
typedef struct user_t user;
struct user_t {
cadena login;
cadena name;
};
typedef struct user_t user_t;
今すぐメインプログラムでは、私はこれを実行します。名前を正しく示したさのprintf()createrUserで
#include "HeaderFile.h"
user createUser();
main() {
user usuario;
usuario = createUser();
printf("%s\n", usuario.name); //This DOES NOT work
exit(0);
}
user createUser() {
user usAux;
char in_login[50], in_name[50];
printf("\nWrite the user");
scanf("%s", &in_login);
usAux.login = in_login;
printf("\nWrite the name");
scanf("%s", &in_name);
usAux.name = in_name;
printf("%s\n", usAux.name); //This WORK
return usAux;
}
を、 2番目のプリント(トッププリント)では "@"のみ表示されます。理論的に私はユーザー変数を作成し、それを同じ型の変数に代入していますが、プロセス内で何か変わるようです。
アイデア?
をしかし、私は構造体にデータをコピーしています。 in_loginまたはin_nameで何が起きても問題ありません。いいえ? – Argos
1)ポインタを 'typedef'しないでください。 2)自動変数は、そのブロックが残っているとライブアウトになります。 3)なぜ 'struct'自体に配列を持たないのでしょうか? 4)ポインタが配列の場合は、 "ポインタ"ではなく "配列"と呼ばれるでしょう。ポインタ、配列、およびその他についてのCの本を読む – Olaf
ダン、@ user3121023あなたは正しくありました。 Java TTの多くの年 – Argos