0

たとえば、私は

*line[30];

各ポインターに 81 文字の文字列を割り当てたい。どうすればそれを行うことができますか?たとえば、2番目の文字列にアクセスしてprintfで使用するにはどうすればよいですか?

また**a、それは同等ですか?

私は初心者で、これは簡単な質問かもしれませんが、学びたいと思っています。どうもありがとうございました!

4

2 に答える 2

3

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
于 2013-01-15T19:31:40.823 に答える
2

以下のコード スニペットが役に立ちます。

#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 番目の文字列 (行) にアクセスします。

于 2013-01-15T19:06:18.567 に答える