C/C++の宿題を片付けます 76代目
■ このスレッドは過去ログ倉庫に格納されています
0201デフォルトの名無しさん
2006/11/08(水) 23:16:53[2] 問題文(含コード&リンク):
#include <stdio.h>
#include <string.h>
#define MAX 10
int main(void)
{char a[MAX]="";
char b[MAX]="";
char c[MAX]="Hello";
strcpy(a, c);
strcpy(b, "Good Bye");
printf("%s,%s,%s\n", a, b, c);
return 0;}
このプログラムのbのサイズを1にして実行した時
なぜ実行結果がこのようになるか説明しなさい。
まず、お聞きしたいのが、bのサイズを1にするとは、
char b[MAX]=""; を char b[1]=""; とすれば良いのですよね?
この実行結果は ood Bye,Good Bye,Hello となりましたが、
なぜ、aにHelloではなくGoodbyeが入ってるのですか?
プログラム的にこのようになるのは、おかしい気がするのですが…。
また、なぜGoodbyeのGが消えているのでしょうか?
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 明日の朝9時まで
[5] その他の制限: なし
■ このスレッドは過去ログ倉庫に格納されています