←検索窓の楽しみ方
  ショッピングモール  掲示板ランキング


【掲示板ご利用上の注意】

 ※題名は具体的に!
 ※学校の課題の丸投げ禁止!
 ※ソースの添付は「HTML変換ツール」で字下げ!
 ※返信の引用は最小限に!
 ※環境(OSとコンパイラ)や症状は具体的に詳しく!
 ※マルチポスト(多重投稿)は慎んで!

 詳しくはこちら



 本当はこんなに大きく書きたくはないのですが、なかなか守っていただけなくて…。
 守ってくださいね。お願いします。(by管理人)

C言語ソース⇒HTML形式ツール   掲示板1こちら


管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧

No.3657

二次元配列のソーティング
投稿者---DRAGONIC(2005/04/11 12:13:20)


現在私は二次元配列のソーティングで悩んでいます。

#define kazu 1000
#define name 20
 ・
 ・
void change(char *a,char *b);
 ・
 ・
int main(void)
{
 ・
 char movie[kazu][name];
 int m,j;
 ・
 ・
 ・
 for(m=0;m<kazu;m++)
 {
  gets(movie[m]);
  if((strcmp(movie[m],".")==0))
  {
   printf("記入は終了です。\n");
   break;
  }
 }
 i=m;

 for(m=0;m<(i-1);m++)
 {
  for(j=m;j<i;j++)
  {
   x=strcmp(movie[m],movie[j]);
   if(x>0)
   {
    change(movie[m],mimic[j]);
    /* *a=movie[m],*b=movie[j]
      a=&movie[m],b=&movie[j]
    */
   }
  }
 }
 ・
 ・
}
 ・
 ・
 ・
void change(char *a,char *b)
{
 char tmp[1];

 strcpy(tmp,a);
 strcpy(a,b);
 strcpy(b,tmp);
}

こういう構成なのですが、movie[m]を入力の際、入力文字数が4,5文字以上になると"メモリをreadできません"という実行エラーが起こります。
命令通りの文字数で行うにはどうすればよいのでしょうか。
アドバイスをお願いいたします。



この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:二次元配列のソーティング 3658 Blue 2005/04/11 12:35:04


No.3658

Re:二次元配列のソーティング
投稿者---Blue(2005/04/11 12:35:04)


>void change(char *a,char *b)
>{
> char tmp[1];
>
> strcpy(tmp,a);
> strcpy(a,b);
> strcpy(b,tmp);
>}
バッファサイズは1でいいのでしょうか?
1の場合だと終端文字('\0')しか入りませんが。



この投稿にコメントする

削除パスワード

No.3660

Re:二次元配列のソーティング
投稿者---Blue(2005/04/11 12:57:27)


>バッファサイズは1でいいのでしょうか?
>1の場合だと終端文字('\0')しか入りませんが。
言い方おかしかったです。
終端文字分の領域しかありません。 というのが正しかったです。

# こんなときに限って削除用パスワードをつけるの忘れてた.....orz





この投稿にコメントする

削除パスワード

No.3661

orz
投稿者---DRAGONIC(2005/04/12 13:46:01)


今まで全然知らなかった……。
丁寧に教えて頂き、誠に感謝いたします。




この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧




掲示板提供:Real Integrity