「果物」配列の文字列と同じ回数だけループを繰り返したいと思います。
「while」ループを使用して最初に試してみましたが、(デバッガーが示したように) 4 回目の反復でセグメンテーション違反が発生したため、適切に動作させることができませんでした (現在はコメントされています)。このメソッドは、文字または整数の配列では機能するはずですが、文字列の配列では機能しません。なぜこのようになっているのですか?
次に、「for」ループを使用しようとし、「count」変数に格納された配列内の文字列要素の総数に達したときに停止するようにしました。しかし、配列内の文字列の数を数える良い方法が見つかりませんでした。それは可能ですか?「sizeof」演算子は、ここでは良い解決策とは思えません。
返信ありがとうございます。
#include <stdio.h>
int main()
{
char *fruits[]={"Apple", "Grapefruit", "Banana"};
int i=0;
int count=sizeof(*fruits);
char **bitter=&fruits[1];
printf("Bitter fruit is: %s", *bitter);
puts(" ");
printf("All fruits are: ");
for (;i<count;i++);
{
printf("%s ",*(fruits+i));
}
/*
while ( fruits[i] != '\0')
{
printf("%s ",*(fruits+i));
}
stuff above failed. why?
*/
return 0;
}