2017-10-26 21 views
0

シンプルなCプログラムで問題が発生しました。
私はポインタを使用して文字列を宣言します。scanfを使用してstdin.Laterから値を渡します。この文字列を印刷します。すべてコンパイルされますが、プログラムを実行するときに文字列を受け取り、私は戻り値3221225477でランタイムエラーを受け取ります。

ここで問題はありますか? DEV C++ IDE btwを使用しています。

メモ:ideone.comのオンラインコンパイラでも同じことを試みましたが、ランタイムエラーは発生しませんでしたが、stdinで指定された文字列の代わりにprint(null)と表示されます。文字列の印刷中にランタイムエラーが発生しました。

#include <stdio.h> 

int  main(void) 
{ 
    char *string; 

    scanf("%s", string); 
    printf("Hello,%s !", string); 

    return 0; 
} 
+0

1を印刷することができます)C. 2には、「ランタイムエラー」) 'STRING'が初期化のdoesnされていませんが存在しません使用可能なメモリを指していますが、未定義の動作があります。 –

答えて

0

あなたは文字列変数のためのスペースを割り当てる必要があります。
はここのコードです。 例えば:

char *string; 
int i; 
scanf("%d", &i); 
string = (char*)malloc(sizeof(char)*i); 

そして、あなたが入力から読み込み、文字列

関連する問題