文字配列に格納する必要のある文字列が多数あり、すべての文字列をループできる必要があります。
さらに、これらの文字列は変更されないので、マトリックスを永続的にし、できればヘッダーファイルに保存する必要があります。
誰かが私を正しい方向に向けることができますか?
私はCで働いていますが、これを行う最善の方法がわかりません。
ありがとう!
文字配列に格納する必要のある文字列が多数あり、すべての文字列をループできる必要があります。
さらに、これらの文字列は変更されないので、マトリックスを永続的にし、できればヘッダーファイルに保存する必要があります。
誰かが私を正しい方向に向けることができますか?
私はCで働いていますが、これを行う最善の方法がわかりません。
ありがとう!
ヘッダーの変数定義はあまり良い考えではないかもしれません。代替案を検討してください。
// source.c contains
const char *const strings[] = {
"string1", "string2", NULL
};
// source.h contains
extern const char *const strings[];
// include source.h anywhere and loop through the strings like this:
for (const char *const *str = strings; *str != NULL; ++str)
// use *str
2レベルのポインタを宣言してみてください。
#define NUMBER_OF_ROWS 10
#define MAX_NUMBER_OF_CHARS_IN_STRING 255
char *strings = (char**)calloc(NUMBER_OF_ROWS * sizeof(char));
const char copy_string[] = "default string";
for(int i = 0; i < NUMBER_OF_ROWS; i++)
{
strings[i] = (char*)calloc(MAX_NUMBER_OF_CHARS_IN_STRING);
}
for(int i = 0; i < NUMBER_OF_ROWS; i++)
{
strcpy(strings[i], copy_string);
}
これは、ANSICを使用していることを前提としています