Okay, here's a plea for help.
Goal: To print the players' clan division, if applicable, out using sprintf.
struct clan_type
{
...
char *division_one_name;
char *division_two_name;
...
};
That's how the divisions are laid out in the struct. 'ch' has a
clandivision field added to it--0 = not in a division, 1 = division 1, 2 =
division 2. Question 1: Is there a better way of accomplishing this? This
system isn't very flexible. However, this isn't the relatively important
question; that one follows:
Here's where I'm running into problems:
char *divbuf[MAX_STRING_LENGTH];
...
if (ch->clandivision > 0 && ch->clandivision < 3)
{
if (ch->clandivision == 1)
divbuf = clan_table[ch->clan].division_one_name; (line 1202)
else
divbuf = clan_table[ch->clan].division_two_name; (line 1204)
}
...
act_comm.c:1202: incompatible types in assignment
act_comm.c:1204: incompatible types in assignment
Originally, I had divbuf not be a pointer, but that also failed. What I'm
trying to do is to copy the name of the division to a buffer, which will be
printed as part of the following sprintf:
\/
sprintf(buf, "%s [(%d) %s] %s: '%s'",
clan_table[ch->clan].who_name, ch->clanrank, divbuf, ch->name,
argument);
Should I just change the struct definition of *division_one_name and
*division_two_name to not be pointers? I need not really even need to copy
the name to a buffer, I suppose I could instead have three different
sprintfs for each situation ('clan_table[ch->clan].division_one_name,
two_name, or none), but that doesn't help me in figuring out pointers and C
in the long run.
I'm sure the optimal solution is relatively easy, but I just can't see it
(like all newbie programmers, pointers are like a programming language in
and of their own to me).
I appreciate your help.
Thanks,
Jeremy Hill