オーバーフローについてです。
"#include<iostream>
int main(){
char str[16];
scanf("%s", str);
printf("%s", str);
putchar('\n');
return 0;
}
こんな感じのプログラムに
12345678901234567890123 とパラメータを渡したら、何も起きなかったのですが、
123456789012345678901234 とパラメータを渡したら、
Abort trap: 6 と出現しました。
オーバーフローのテストのつもりでやったのですが、何が起きているのかサッパリ分からないのです。これで、オーバーフローは起きているのでしょうか?
一回目は起きていそうもないのですが・・・
16個配列がありながら23個のパラメータを渡しても何も起きていないのですが・・・・
なぜ、パラメータを24個でAbort trapと出てきたのでしょうか??
mac OS と gcc コンパイラを使用しています。
ヒープオーバーフローやスタックオーバーフロー以外にどんな種類のオーバーフローが存在しますか?
回答6件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/08/18 06:12