0
#include <stdio.h>
#include <string.h>
int text(char*);
int main()
{
char n[5][100] = {'c'};
char (*p)[100] = n;
text(*p);
return 0;
}
int text(char *p)
{
for(int i = 0; i<5; i++)
{
scanf("%s", p+i);
}
printf("%s", (p+2));
return 0;
}
したがって、2D文字配列のポインタを使用して完全な文字列を出力する必要があります。 2次元配列を宣言し、2次元配列を宣言しました。 それから機能テストに渡します。ポインタを使用した2次元文字配列からの文字列
私は(p + 2)を印刷すると、3行目を印刷すると思います。しかし、それは3行目から最後の行までの各行の最初の文字と最後の行全体を出力します。
間違いは何ですか?
関数int text(char *); 2D配列へのポインタを受け付けません。 1次元配列の最初の文字へのポインタを受け取ります。 –