回答編集履歴
2
文言修正
answer
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
何をやろうとしているのかはよく判りませんが、ファイル名の一部をオープンモードとするアイディアは聞いたことがありませんし、無用な混乱を招くので別の方法を考えた方が良いと思います。
|
2
2
|
|
3
|
-
それとは別に
|
3
|
+
それとは別にアサーションが発生する問題ですが、C標準の仕様かどうかは定かではないのですが、VC++ではfopenの引数(ファイル名、モード)にNULLか空文字列を渡すと無効な引数ハンドラーが呼び出されます。
|
4
4
|
したがって、fopen関数を呼び出す前に引数のチェックをすれば問題を回避できます。
|
5
5
|
|
6
6
|
コード例
|
@@ -10,4 +10,7 @@
|
|
10
10
|
printf("引数に誤りがあります\n");
|
11
11
|
return 0;
|
12
12
|
}
|
13
|
-
```
|
13
|
+
```
|
14
|
+
|
15
|
+
---
|
16
|
+
C標準関数で例外はないですよね。アサーションに修正しました。
|
1
スペルミス修正
answer
CHANGED
@@ -8,6 +8,6 @@
|
|
8
8
|
if(filename[0] == '\0' || mode[0] == '\0')
|
9
9
|
{
|
10
10
|
printf("引数に誤りがあります\n");
|
11
|
-
|
11
|
+
return 0;
|
12
12
|
}
|
13
13
|
```
|