ショッピングモール  掲示板ランキング


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

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

 詳しくはこちら



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

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


管理者用メニュー    ツリーに戻る    ホームページ    使用可能タグ一覧

No.2679

malloc freeについて
投稿者---TOMO(2004/09/12 18:32:38)
http://tomaxend.web.infoseek.co.jp/


初めて投稿します。ちょっと疑問に思った事あるので質問しますm(_)m

char *cTes;

while(1){
cTes = (char *)malloc(10);
free(cTes);
}

このようにfree後すぐにmallocって形は良くないですか?
数十回繰り返した後にエラーが出てしまいます。



この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:malloc freeについて 2680 monkey 2004/09/12 18:52:50


No.2680

Re:malloc freeについて
投稿者---monkey(2004/09/12 18:52:50)


>このようにfree後すぐにmallocって形は良くないですか?
>数十回繰り返した後にエラーが出てしまいます。

# 環境とどんなエラーが出たかを書きましょう。
# その他【掲示板ご利用上の注意】もお読みください。

数十回でエラーというのは、何か別の要因があると思われます。
そもそも書かれたコードは無限ループになっていますが、それで良いのですか?
現象が再現されるコードを書いてください。

参考までに、私の環境では1億回繰り返しても問題ありませんでした。

OS:WindowsXp, CPU:Pentium4 3.06GHz, RAM:1.50GB
コンパイラ:BCC5.5.1, オプションなし

テストコード
#include <stdlib.h>
#include <stdio.h>

int main()
{
    char *cTes;
    int i;
    for( i = 0; i < 100000000; ++i )
    {
        cTes = (char*)malloc(10);
        free(cTes);
    }
    printf( "finished at %d\n", i );
    return 0;
}





この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    ホームページ    レンタル掲示板サービス




掲示板提供:Real Integrity