たとえば、私は
*line[30];
各ポインターに 81 文字の文字列を割り当てたい。どうすればそれを行うことができますか?たとえば、2番目の文字列にアクセスしてprintfで使用するにはどうすればよいですか?
また**a
、それは同等ですか?
私は初心者で、これは簡単な質問かもしれませんが、学びたいと思っています。どうもありがとうございました!
I want to allocate a string 81 characters for each pointer
必要な正確なサイズがわかっているので、これを静的に行うことができます。
char line[30][81];
これにより、81 文字の配列が 30 個得られます。
strcpy(line[0], "hello");
strcpy(line[1], "world");
printf("%s\n", line[1]); // prints the second string
以下のコード スニペットが役に立ちます。
#define MAX_LINES 30
#define MAX_CHARS 81
...
char * line[MAX_LINES];
int i;
for (i = 0; i < MAX_LINES; i++)
{
line[i] = malloc(sizeof(char) * MAX_CHARS);
}
for
各行へのアクセスには同じループを使用します。line[1]
2 番目の文字列 (行) にアクセスします。