0
stdinを実行し、scanf形式によっては真であることを確認したコードを作成しました。文字列形式のScanf
/test
サンプル出力:
/test
Segmentation fault
私はあなたがセグメンテーションフォールトに
stdinを実行し、scanf形式によっては真であることを確認したコードを作成しました。文字列形式のScanf
/test
サンプル出力:
/test
Segmentation fault
私はあなたがセグメンテーションフォールトに
の原因を見当がつかないここ
はコード
#include <stdio.h>
int main()
{
int i;
char* a;
i = 0;
while (1 == scanf("/%[^/ \t\n]", a[i++]))
printf(">%s<\n", a[i-1]);
return 0;
}
サンプル入力ですプロにする必要があるchar *
のアドレスをscanf
とprintf
関数に渡しますが、同じ要素を提供しています。また、メモリをchar *a
に割り当てる必要があります。
char *a = malloc(15*sizeof(char));
while (1 == scanf("/%[^/ \t\n]", a))
printf(">%s<\n", a);
出力:
>test<
'文字列str [32]。 char * a = str;i = 0; "printf(">%s <\ n "、a); ' – BLUEPIXY
デバッガを使用するのがよいでしょう。クラッシュが発生した場所を正確に知ることができます。 – Olaf
@BLUEPIXYそれはどのようにしなければならなかった、それは要件です。 –