[解決済み】fgetsによるセグメンテーションフォールト(コアダンプ) - と思う。
2022-02-06 03:21:11
質問
が、このプログラムを実行すると、このエラーが出続けています。fgets関数が原因だと思うのですが。入力変数をNULLに初期化すれば解決するかと思い試してみましたが、ダメでした。また、mallocをしないと解決しないかもしれないと直感しています。しかし、あなたの助けは非常に高く評価されています。
int main(int argc, char* argv[])
{
char* input = NULL;
// ensure one and only one command line argument
if (argc != 2)
{
printf("Usage: %s [name of document]\n", argv[0]);
return 1;
}
// open a new document for writing
FILE* fp = fopen(argv[1], "w");
// check for successful open
if(fp == NULL)
{
printf("Could not create %s\n", argv[1]);
return 2;
}
// get text from user and save to file
while(true)
{
// get text from user
printf("Enter a new line of text (or \"quit\"):\n");
fgets(input, 50, stdin);
// if user wants to quit
if (input != NULL && strcmp(input, "quit") == 0)
{
free(input);
break;
}
// if user wants to enter text
else if (input != NULL)
{
fputs(input, fp);
fputs("\n", fp);
printf("CHA-CHING!\n\n");
free(input);
}
}
// close the file and end successfuly
fclose(fp);
return 0;
}
解決するには?
を使用することができます。
malloc()
#define
free
関連
-
[解決済み】C言語で「関数の型が競合しています」と表示される、なぜ?
-
[解決済み] (.text+0x20): `main'への未定義の参照と関数への未定義の参照
-
[解決済み】「無効なイニシャライザー」と表示されるのですが、何が間違っているのでしょうか?
-
[解決済み] テスト
-
[解決済み】sizeof float (3.0) vs (3.0f)
-
[解決済み】argv[]をint型として取得するには?
-
[解決済み】C言語で入力が整数型かどうかチェックする
-
[解決済み】スタックスマッシュを検出しました
-
[解決済み] セグメンテーションフォールトとは何ですか?
-
[解決済み】Coreはダンプされたが、coreファイルがカレントディレクトリにない?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Valgrind が "Invalid write of size 8" で文句を言う。
-
[解決済み】単項演算子「*」の型が無効(「int」がある)C言語でのエラー
-
[解決済み] Connect: ソケット以外でのソケット操作
-
[解決済み】エラー:イニシャライザー要素がロード時に計算可能でない
-
[解決済み】Linuxでexeclp()がどのように動作するのか理解できません。
-
[解決済み】なぜか。"エラー: 配列型を持つ式への代入"
-
[解決済み】宣言指定子で2つ以上のデータ型がある場合のエラー【非公開
-
[解決済み] エラー: `itoa` はこのスコープで宣言されていません。
-
[解決済み】シンプルなC言語のscanfが機能しない?重複
-
[解決済み】配列型char[]が代入できない [重複]。