no_name33 の回答履歴

全8件中1~8件表示
  • 文字列、ポインタを使用したプログラムで分からないところがあります

    1 #include <stdio.h> 2 3 void setstr(char *str){ 4   str = "abc"; 5   return; 6 } 7 8 int main(){ 9 10   char *str; 11 12   setstr(str); 13 14   str[1] = 'E'; 15 16   printf("str = %s\n", str); 17 18   return 0; 19 } 20 上記のプログラムの動きがいまいち理解できません。 (メモリの状態など) 16行目でprintfすると、結果は「str = 、E・」となります。 ---まず、4行目でabcに対してメモリが確保されて、その先頭アドレスが strに設定されます。 しかし、setstr関数を抜けた時点で、先ほど確保されたメモリは開放されて しまう。(? ここは想像です。確証がありません) main関数に戻ってきて、14行目で変更しているメモリは、abcがかつてあった 場所の"b"の部分。(str自体は何も変更されていないから) 16行目でprintfしているのだけど、なぜこの結果になるのかが分かりません。。 分かる方いましたら教えて下さい。上の文章では何を言っているのか分かりづらいとは 思いますが。。 説明には適宜行番号を使って頂いて構いません。 よろしくお願いします。

    • upanepa
    • 回答数13
  • 文字列、ポインタを使用したプログラムで分からないところがあります

    1 #include <stdio.h> 2 3 void setstr(char *str){ 4   str = "abc"; 5   return; 6 } 7 8 int main(){ 9 10   char *str; 11 12   setstr(str); 13 14   str[1] = 'E'; 15 16   printf("str = %s\n", str); 17 18   return 0; 19 } 20 上記のプログラムの動きがいまいち理解できません。 (メモリの状態など) 16行目でprintfすると、結果は「str = 、E・」となります。 ---まず、4行目でabcに対してメモリが確保されて、その先頭アドレスが strに設定されます。 しかし、setstr関数を抜けた時点で、先ほど確保されたメモリは開放されて しまう。(? ここは想像です。確証がありません) main関数に戻ってきて、14行目で変更しているメモリは、abcがかつてあった 場所の"b"の部分。(str自体は何も変更されていないから) 16行目でprintfしているのだけど、なぜこの結果になるのかが分かりません。。 分かる方いましたら教えて下さい。上の文章では何を言っているのか分かりづらいとは 思いますが。。 説明には適宜行番号を使って頂いて構いません。 よろしくお願いします。

    • upanepa
    • 回答数13
  • 文字列、ポインタを使用したプログラムで分からないところがあります

    1 #include <stdio.h> 2 3 void setstr(char *str){ 4   str = "abc"; 5   return; 6 } 7 8 int main(){ 9 10   char *str; 11 12   setstr(str); 13 14   str[1] = 'E'; 15 16   printf("str = %s\n", str); 17 18   return 0; 19 } 20 上記のプログラムの動きがいまいち理解できません。 (メモリの状態など) 16行目でprintfすると、結果は「str = 、E・」となります。 ---まず、4行目でabcに対してメモリが確保されて、その先頭アドレスが strに設定されます。 しかし、setstr関数を抜けた時点で、先ほど確保されたメモリは開放されて しまう。(? ここは想像です。確証がありません) main関数に戻ってきて、14行目で変更しているメモリは、abcがかつてあった 場所の"b"の部分。(str自体は何も変更されていないから) 16行目でprintfしているのだけど、なぜこの結果になるのかが分かりません。。 分かる方いましたら教えて下さい。上の文章では何を言っているのか分かりづらいとは 思いますが。。 説明には適宜行番号を使って頂いて構いません。 よろしくお願いします。

    • upanepa
    • 回答数13
  • 参照型変数で受け取らないnew

    ふつうは A a; a=new A(); というふうにnew A();を参照型変数aで受け取りますよね? しかしこの前見たのは メインメソッドにいきなり new A(); とだけ書いてあるのです。 参照型変数で受け取ってないんです。 こんなことゆるされるんでしょうか? これですと、Aというオブジェクトはnewされて生成されたわけですが、 どこからも参照されていないのでガーベッジコレクションの対象に なってしまうのではないのでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • Java
  • 極力安全な買い方は?

    被害妄想なのですが、ネットショッピングの際、id等の個人データが流出して第三者が私のIDを使用して、高額な商品を勝手に私の代わりに私の名で買う手続きをして、我が家に届かせるという嫌がらせは、ありえるかなと、不安です。 上記に書いた不安妄想も込みで、ネットでのショッピングは何かと不安がついてくるとおもうのですが、一番と良いと言いますか、極力安全な買い方はどのような支払い方法だと思われますか? 私の考えは、コンビニ払いか代引きの二つなのですがどうでしょうか?

    • noname#65771
    • 回答数6
  • システムエンジニアの方、経験者の方、ご意見お願いします

    現在、就職活動中の大学四年のものです。 地元(九州の田舎です)での就職を考えており、SE職を考えています。 切羽つまっており、地元にこだわるならある程度の条件・待遇はやむを得ないと考えていますが、この会社の待遇はSEとしてはどうでしょうか? ベンチャー企業で基本給は18万。保険は完備ですが、残業代や通勤手当はありません。出張手当くらいなものです。話によると、頑張りは基本給に還元していく、とのことです。 波はあれどSEは残業が多いかと思います。なのに残業代がないというのが納得できず、いくら地元でも、、、と躊躇してます。 SE・PGのかた、経験者の方、この待遇はどう思われますか? 最終的な判断は自分でしないといけませんが、ご意見を伺いたいと思います。 よろしくお願いします。

    • hy-rain
    • 回答数4
  • 皆さん見逃したテレビ番組ってどこで見ていますか?

    私が探しているのは金曜ロードショーとかでやっていた映画を探しているのですが、なかなかすべて載っているところがありません、最初の10分だけとか。 ドラマとかならたくさんあるんですが・・・ 上にかかわることなんですがやっぱり地上波に出た映画もやっぱり著作権はあって、こういうのは引っかかるんでしょうか? 今は上だけが知りたいので下だけの答えはやめてほしいです。よろしくお願いします。

  • 皆さん見逃したテレビ番組ってどこで見ていますか?

    私が探しているのは金曜ロードショーとかでやっていた映画を探しているのですが、なかなかすべて載っているところがありません、最初の10分だけとか。 ドラマとかならたくさんあるんですが・・・ 上にかかわることなんですがやっぱり地上波に出た映画もやっぱり著作権はあって、こういうのは引っかかるんでしょうか? 今は上だけが知りたいので下だけの答えはやめてほしいです。よろしくお願いします。