teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

C++の場合についての一文を追加、及びタイトルの編集

2022/10/29 06:04

投稿

moomoomoo
moomoomoo

スコア3

title CHANGED
@@ -1,1 +1,1 @@
1
- 末尾の改行を削除するCのコード
1
+ 末尾の改行を削除するC/C++のコード
body CHANGED
@@ -1,6 +1,7 @@
1
1
  C言語で、入力された文字列の末尾にある改行を削除する関数removeEOLを以下のように実装しました。
2
2
  しかし、これを実行すると、Segmentation faultが起きてしまいます。
3
3
  main文の`char* str = "abc\n";`を`char str[10] = "abc\n"`などに変更した場合はSegmentation faultは起きず、正常に実行できます。
4
+ C++においても同様の問題が起きることを確認しています。
4
5
 
5
6
  どうやら17行目の`str[endIndex] = 0x00`でSegmentation faultが起きているようですが、ではなぜ16行目の`if(str[endIndex] == 0x0a)`ではSegmentation faultが起きないのでしょうか。
6
7
  原因が全く分かりません。