アドレス値

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
cgengomanyuuii

アドレス値

#1

投稿記事 by cgengomanyuuii » 9年前

#include<stdio.h>
#include<string.h>

#define MAXSTR 11

int main(void)
{
char str_a[MAXSTR]="";
char str_b[1]="";
char str_c[MAXSTR]="Hello.";

strcpy(str_a, str_c);

strcpy(str_b, "Good Bye.");

printf("%p,%p,%p\n",str_a, str_b, str_c);
printf("%s,%s,%s\n",str_a, str_b, str_c);

return 0;
}

このプログラムの挙動がおかしいことについて、表示されるアドレス値を用いて説明してください><

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: アドレス値

#2

投稿記事 by みけCAT » 9年前

ソースコードを提示する際は、BBCodeを有効にした(無効にしない)状態でcodeタグで囲んでいただけると、見やすくてありがたいです。
cgengomanyuuii さんが書きました:このプログラムの挙動がおかしいことについて、表示されるアドレス値を用いて説明してください><
このプログラムは
  • strcpy関数で確保された範囲外に書き込む
  • printfの%pにはvoid*型のデータを渡さないといけないのに、char*型のデータを渡している
というundefined behaviorを含むので、任意の挙動がおかしくありません。
よって、この質問はナンセンスです。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

non
記事: 1097
登録日時: 14年前

Re: アドレス値

#3

投稿記事 by non » 9年前

宿題のまるなげでは?
non

閉鎖

“C言語何でも質問掲示板” へ戻る