musketaquid
03-02-2007, 14:58
Ich möchte einen 2-dimensionalen array extern verwenden.
Ich hatte vor, das so zu machen:
...
extern char word_dsp_buf[4][14];
...
void
glsdreh_init()
{
int i;
...
for (i=0; i<4; i++)
word_dsp_buf[i][0] = '\0';
...
}
...
void
center_puzzle(const char *s, int line, int n)
{
...
strncpy(&word_dsp_buf[line][0], s, n);
...
}
Aber da bekomm ich immer eine Fehlermeldung:
...undefined reference to 'word_dsp_buf'...
für glsdreh_init und center_puzzle.
Wenn ich dagegen den array lokal in der funktion definiere geht's.
void
center_puzzle(const char *s, int line, int n)
{
int i;
char word_dsp_buf[4][14];
for (i=0; i<4; i++)
word_dsp_buf[i][0] = '\0';
strncpy(&word_dsp_buf[line][0], s, n);
...
}
Aber was in den array kopiert wird, muss die ganze Laufzeit über gespeichert
bleiben und ich brauch den array auch für eine andere Datei.
Wie mach ich das?
Ich hatte vor, das so zu machen:
...
extern char word_dsp_buf[4][14];
...
void
glsdreh_init()
{
int i;
...
for (i=0; i<4; i++)
word_dsp_buf[i][0] = '\0';
...
}
...
void
center_puzzle(const char *s, int line, int n)
{
...
strncpy(&word_dsp_buf[line][0], s, n);
...
}
Aber da bekomm ich immer eine Fehlermeldung:
...undefined reference to 'word_dsp_buf'...
für glsdreh_init und center_puzzle.
Wenn ich dagegen den array lokal in der funktion definiere geht's.
void
center_puzzle(const char *s, int line, int n)
{
int i;
char word_dsp_buf[4][14];
for (i=0; i<4; i++)
word_dsp_buf[i][0] = '\0';
strncpy(&word_dsp_buf[line][0], s, n);
...
}
Aber was in den array kopiert wird, muss die ganze Laufzeit über gespeichert
bleiben und ich brauch den array auch für eine andere Datei.
Wie mach ich das?