2016-11-30 25 views
0

stdinを実行し、scanf形式によっては真であることを確認したコードを作成しました。文字列形式のScanf

/test 

サンプル出力:

/test 
Segmentation fault 

私はあなたがセグメンテーションフォールトに

+1

'文字列str [32]。 char * a = str;i = 0; "printf(">%s <\ n "、a); ' – BLUEPIXY

+0

デバッガを使用するのがよいでしょう。クラッシュが発生した場所を正確に知ることができます。 – Olaf

+0

@BLUEPIXYそれはどのようにしなければならなかった、それは要件です。 –

答えて

0

の原因を見当がつかないここ

はコード

#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 *のアドレスをscanfprintf関数に渡しますが、同じ要素を提供しています。また、メモリをchar *aに割り当てる必要があります。

char *a = malloc(15*sizeof(char)); 
while (1 == scanf("/%[^/ \t\n]", a)) 
    printf(">%s<\n", a); 

出力:

>test<