このような構造があります。
struct Address {
int id;
int set;
char name[MAX_DATA];
char email[MAX_DATA];
};
そして、アドレスを設定する関数。
void Database_set(struct Connection *conn, int id, const char *name, const char *email) {
struct Address *addr = &conn->db->rows[id];
if(addr->set) die("Address already set");
addr->set = 1;
char *res = strncpy(addr->name, name, MAX_DATA);
if(!res) die("Name copy failed");
*res = strncpy(addr->email, email, MAX_DATA);
if(!res) die("Email copy failed");
}
しかし、この行の後、addr->name の最初の文字が壊れます。
*res = strncpy(addr->email, email, MAX_DATA);
何か案は?