する質問をすることでしか得られない、回答やアドバイスがある。実験コードを作成していたら、表示がおかしくなりました。22という風に文字化けしてしまいます。mallocのところをcalloc()でやるとうまくいきました。このコードどこがおかしいのでしょうか??ダメな部分の指摘をお願いします。ちなみに、for文を以下のようにしたら、化けなくなりました。str[i];それから、文字列を短いとうまくいきます。長くするダメになります。"HAPPY"なぜですか??配列イメージだと一番最初のコードでよさそうですが・・・・attachmentクリップ0気になる質問をクリップするクリップした質問は、後からいつでもマイページで確認できます。クリップした質問に回答があった際、通知やメールを受け取ることができます。自分も答えを知りたい質問者以外のユーザにも役立つ評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。質問の評価を上げたことを取り消します低評価-評価を下げられる数の上限に達しました評価を下げることができません1日5回まで評価を下げられます1日に1ユーザに対して2回まで評価を下げられます質問の評価を下げるteratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。コメントをしてください。送信する質問の評価を下げる機能の利用条件この機能を利用するためには、以下の事項を行う必要があります。件sort評価が高い順sort新着順sort古い順linkcheckベストアンサー+2strxxx系のファンクションは、長さを指定しない代わりに\0をストッパーとしていますですので\0が見つかるまでを対象としています。printfの%sも同様な動きをします。同様とするには自身で\0埋める必要があります。定義された領域もたまたま後ろが\0で有る場合が多く正常っぽく動く事があります。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。今まで、配列のコピーとかは以下のようにやっていました。i++)こうでもよいのでしょうか??今まで、配列のコピーとかは以下のようにやっていました。str[i];の部分たと思います。変えてCコンパイラに渡すと思います。str[22]は、領域外となります。「q」のエリアを1バイト長くmallocしてそこに\0を入れる様にしています。for文は22で抜けて来ますのでそれを使っています。str[i];の部分たと思います。変えてCコンパイラに渡すと思います。str[22]は、領域外となります。「q」のエリアを1バイト長くmallocしてそこに\0を入れる様にしています。来ますのでそれを使っています。21:09訂正します。すみませんstrは23バイトの領域を取り、NULLが付いています。ご指摘ありがとうございます。