5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

お前らがmalloc使う場面、オレに教えてみないか?

1 :デフォルトの名無しさん:03/05/18 00:35
いつ動的確保してんだよテメーラ

2 :デフォルトの名無しさん:03/05/18 00:36
2get

3 :デフォルトの名無しさん:03/05/18 00:36
多分2ゲット

4 :デフォルトの名無しさん:03/05/18 00:36
2がほしい、、、

5 :2:03/05/18 00:36
勝ったw

6 ::03/05/18 00:36
強かった

7 :デフォルトの名無しさん:03/05/18 00:37
7辺り?

8 :2:03/05/18 00:37
何秒の差なんだろう

9 ::03/05/18 00:38
2,3秒か?

10 ::03/05/18 00:39
11ゲットか?、、、、、

11 ::03/05/18 00:39
ぐわぁ。悲しかった

12 :デフォルトの名無しさん:03/05/18 00:40
動的に12げっと

13 :デフォルトの名無しさん:03/05/18 00:49
・・・と、このように入力の数が不確定なときにですね

14 :デフォルトの名無しさん:03/05/18 00:58
14ゲット。あきた

15 :デフォルトの名無しさん:03/05/18 00:58
母をたずねに、mallocは3000里の旅に向かいました・・・。


16 :デフォルトの名無しさん:03/05/18 01:34
ミスターmalloc()の超魔術

17 :デフォルトの名無しさん:03/05/18 01:37
realloc(&>>1,sizeof(>>17)+1);

18 :デフォルトの名無しさん:03/05/18 02:36

while( malloc(1) ) {
  printf(">>1は氏ね\n");
}

19 :デフォルトの名無しさん:03/05/18 02:41
>>18
せっかく確保した領域がたったの1バイトとは、、おまえもちっちゃい人間だな


20 :デフォルトの名無しさん:03/05/18 02:50
reallocで済むのにmallocとかcallocとかfreeとか使うなよ。

21 :20:03/05/18 02:50
callocの代わりは出来ないか。

22 :デフォルトの名無しさん:03/05/18 02:59
>>1
まあmalloc使わなくてもいい言語つかえばらくなんだが。
そうも逝かない仕事をしているのか?

23 :デフォルトの名無しさん:03/05/18 03:16
そういえばmalloc使うことって無いな。
PCとかメモリを十分使える環境ならC++使うし、
組み込みとかメモリが無い所では動的に確保したりしないし。

24 :1:03/05/18 04:51
>>22
いや、オレ自身もほとんど使った事無いから他のやつらはどうなのか、と聞いてみたかっただけだ


25 :デフォルトの名無しさん:03/05/18 10:26
おまえはC言語をほとんど使った事ないだろ。

この時期はちょうど大学でmallocを教える時期だね。



26 :デフォルトの名無しさん:03/05/18 10:32
>>1
mallocはDIBを操作する頃になると
やけに、多発する。
メモリリークも。
自在に幅を変えられるので、
複雑なソースに重宝する。(僕は)

27 :デフォルトの名無しさん:03/05/18 12:48
26=1
よく調べたねw

28 :デフォルトの名無しさん:03/05/18 12:55
C言語でFFTとかフィルタつくるときはmallocないとちとつらいかな。

29 :26:03/05/18 13:20
僕は>>1じゃない。
信じてくれーーー

30 :デフォルトの名無しさん:03/05/18 13:24
>>25
なるほど。今はmallocの季節ですか。
他の季節を関数名で表現するとどうなるんだろう

31 :デフォルトの名無しさん:03/05/18 13:26
>>26=GUIライブラリスレの>>7=>>14

32 :26:03/05/18 13:44
>>31
良くわかったね。
DIB関係で?

33 :デフォルトの名無しさん:03/05/18 13:57
>>1
C++ の new 使へ。

↓↓↓ 以下 enum の使いでについて語ってくれ ↓↓↓

34 :デフォルトの名無しさん:03/05/18 14:00
使うときないんじゃない?
#defineの方が絶対いい。

35 :デフォルトの名無しさん:03/05/18 14:01
無料ゲーム↓
http://www5b.biglobe.ne.jp/~ryo-kyo/yumesuzuna.html

36 :デフォルトの名無しさん:03/05/18 14:01
Javaやってるとメモリに対する意識がCのときとくらべ格段に薄くなってしまった。
それでも不要になったオブジェクトにはnullったりするように心がけてますよ。
System.gc()とかも使ったり


37 :名無し@沢村:03/05/18 14:12
おまいらよ、mallocでヒープ領域を確保するのはいいが、まさか同じ関数の中でmallocでメモリを確保してfreeで開放しているバカはいないだろうな?
いたら返事してみろ?
いいかmallocは関数を抜けてもそのメモリが消えないようにするために使うもんであって、freeは別の場所で使うもんなんだよ!!わかるか?
おまいらよ、わかるかな?

38 :名無し@沢村:03/05/18 14:19
おまいらよ、mallocでヒープ領域を確保するのはいいが、その際メモリ内に含まれる「予約ビット」のことは考えているか?
「予約ビット」というのはメーカーが将来の予約のためにメモリ内の一部のビットを確保しているもので、プログラマが使用してはいけない領域なんだよ。
この「予約ビット」にアクセスするとプログラムが暴走したりシステムがハングしてりして大変危険なんだよ。
また「予約ビット」はメモリ何のどこに置かれているかはメーカーによってまちまちで、例えばmallocで1000バイト確保した場合その1000バイトの中に入っているかもしれないんだよ。
このようにひとくちにmallocでメモリを確保するといっても「予約ビット」というおまいらには予想もつかない落とし穴があることを忘れるな!!!

39 :デフォルトの名無しさん:03/05/18 14:29
ふつー mmap

40 :デフォルトの名無しさん:03/05/18 14:49
>>37-38
沢村の誤解を招く発言を訂正します。
沢村のはC++の話なので、
Cの方がブロック内の最前でしか変数を宣言できないことを知りません。
また、予約ビットなんて気にしてたらmallocどころか[]←さえ使えません。
そんなのはOS,コンパイラに任せてあげてください。
沢村の話はビル・ゲイツ関連だけ信じるように。

41 :デフォルトの名無しさん:03/05/18 14:53
沢村はM$信者か?

42 :popo:03/05/18 15:09
僕は、制限あることがきらいなのでいつでも動的メモリーを確保(w
なぜなら、後で拡張性を考えずにすむから。
常に∞を意識してギリギリ限界まで自由に使いたいというのが漏れのポリシー。(w
mallocもnewもお気に入り、常に使いまくっている。
おかげで、メモリーリークをよく起す(w、いや、起していた。
天井のある部屋なんてつまらないだろう?そう思わないか?


43 :bloom:03/05/18 15:11
http://homepage.mac.com/ayaya16/

44 :デフォルトの名無しさん:03/05/18 16:01
>>42
それはやりすぎ。

45 :44:03/05/18 16:12
暇なんで調べたら
//a.c
#include<stdlib.h>
int main(int argc,char**argv)
{   char S;           }
//実行形式(コンソール)47,104 バイト

//b.c
#include<stdlib.h>
int main(int argc,char**argv)
{   char *S=(char *)malloc(1);  }
//実行形式(コンソール)47,104 バイト

//c.c
int main(int argc,char**argv)
{   char S;            }
//実行形式(コンソール)47,104 バイト
だった。

46 :デフォルトの名無しさん:03/05/18 16:15
>>42
それ業務でやったら瑕疵責任賠償モンだぞ

47 :デフォルトの名無しさん:03/05/18 16:25
予約ビット?なにそれ。C++にそんな制限あるの?
予約ビットのために、数MB/GBのメモリの中の数bitを適当に確保するだなんて、、、阿呆な仕様だな。
>メーカーが将来の予約のためにメモリ内の一部のビットを確保しているもので、プログラマが使用してはいけない領域
>例えばmallocで1000バイト確保した場合その1000バイトの中に入っているかもしれないんだよ。
仮にあったとしても、メモリ管理もOSの仕事かと。そんな大切なものをheap領域に置くほうが悪い。
っていうか何のための予約ビットなんだかわからない。

...あ、ごめん。沢村の脳内コンピュータの話をしてるなら、多分いいんだろ。
一般的なコンピュータ使っている人間は気にする必要なし。

48 :デフォルトの名無しさん:03/05/18 22:12
キチガイにマジレス?

49 :デフォルトの名無しさん:03/05/18 22:19
>>47
ここまでメチャクチャ言われると反論したくなる
気持ちはわかる。けど、やめれ。
つけあがるから。永遠に続くぞ。while(1);のように

50 : :03/05/19 00:07
Cで多態を実現するときとか使わない?
struct Base {...};
struct Hoge{struct Base;...};
struct Foo{struct Base;...};

Base *aBase = CreateBase();
Base *aHoge = CreateHoge();
Base *aFoo = CreateFoo();

aBase->doSomethig(aBase); //doSomethigはDoSomethig_Base()へのポインタ
aHoge->doSomethig(aHoge); //doSomethigはDoSomethig_Hoge()へのポインタ

こんな感じ。


51 :デフォルトの名無しさん:03/05/19 00:37
昔、漏れが初めて読んだCの入門書には、malloc()の事が
一言も書かれていなかった。

それから数ヶ月の間、人並みにmalloc()する事は漏れの憧れだった。

52 :デフォルトの名無しさん:03/05/19 01:51
入門書には書いてないよな

53 :デフォルトの名無しさん:03/05/19 11:17
C++で配列を返す関数の作り方がわかりません。

class A;

A*
ACreater::CreateA()
{
 static A a[10];

 return a;
}

だとだめです。たすけてくらさい。

54 :デフォルトの名無しさん:03/05/19 11:28
マジレスすると
mallocとreallocは
postgresでデータを取るときに使うがな
データは可変だから文字列とか動的に取らないといけないわけ
まぁ静的に取ってもいいがオーバーフローになったらいやだし
マジレスしてみた

55 :デフォルトの名無しさん:03/05/19 11:38
扱うデータが可変の場合は malloc() 使う・使いたい。
#newでもよし


56 :デフォルトの名無しさん:03/05/19 12:05
>1
ファイルを1回で全て読むとき。

>誰か・・・。
質問。
僕はよく、外部でfreeを要求するような関数を書くんだけど、
こういうのはやばい??
それともしっかり説明付けとけばOK?
もう一個、ローカル関数をリターンするのはNG?(Cの場合)

57 :デフォルトの名無しさん:03/05/19 12:10
でかいワーク確保する時に使うなぁ・・・。
自動変数で宣言したら、スタックオーバーフローしちまうよ。
静的に確保したおいたら、プログラム自体が莫大なサイズになるし。


58 :デフォルトの名無しさん:03/05/19 12:24
>>1
基本的なことだが
予め個数の予想できないデータ群を保持するのに
リスト構造とか必要にならない?

59 :デフォルトの名無しさん:03/05/19 13:14
>>56 僕はよく、外部でfreeを要求するような関数を書くんだけど、
こういうのはやばい??
それともしっかり説明付けとけばOK?

free()を内包した関数を用意して、その関数とセットで使わせる方がいい。

>もう一個、ローカル関数をリターンするのはNG?(Cの場合)

意味不明。Cは関数内で関数を定義することができない。また動的に関数を定義することもできない。
static 関数のポインタをリターンする事を言ってるのか?だとしたらそれはOK



60 :デフォルトの名無しさん:03/05/21 00:29
Accessでデータベース処理やってる分にはmallocなんて使わないな
データ入力したら勝手に新たに領域確保してくれるし
自分で拡張の処理をコーディングする場面なんてないし

61 :デフォルトの名無しさん:03/05/21 00:39
http の POST データを入れる箱として。

62 :デフォルトの名無しさん:03/05/21 01:44
xmlやhtmlを走査するとき。

63 :デフォルトの名無しさん:03/05/21 02:07
>>42みたいのに青天井を要求された時。

64 :デフォルトの名無しさん:03/05/21 03:28
メモリ確保・開放カンペキ!と思ったらピューリファイとかかけたら
リークしまくりだった。がっかり。

65 :デフォルトの名無しさん:03/05/21 16:11
>59
遅くなったけど、thx!
専用の破棄用関数をつくるわけですな。
なるほど。
あと、関数じゃなくて変数でした。すいません。

66 :デフォルトの名無しさん:03/05/21 17:29
mallocってどう読んでる?

67 :デフォルトの名無しさん:03/05/21 17:39
マポーフィック?

68 :デフォルトの名無しさん:03/05/21 17:40
マーロック
和訳:岩男

69 :デフォルトの名無しさん:03/05/21 18:26
エムアロック。
マロック。

alloc:割当てる, 充当する(by goo)
だってさ。

70 :デフォルトの名無しさん:03/05/21 20:11
メモリアロック

71 :デフォルトの名無しさん:03/05/21 20:18
「やべぇ!コンストラクタがプライベートだ!」

72 :デフォルトの名無しさん:03/05/21 21:19
漏れの肛門もパブリックにされそうです。

73 :デフォルトの名無しさん:03/05/21 21:48
>>71
シングルトンスレへ。

74 :デフォルトの名無しさん:03/05/22 01:46
マイルフィック?

75 :デフォルトの名無しさん:03/05/22 01:53
ガムシロップ

76 :デフォルトの名無しさん:03/05/22 02:26
ちょっと小腹が空いた

そんなときに malloc()

77 :デフォルトの名無しさん:03/05/22 03:45
画像系のプログラム書くとよく使うね.
g++だと関数内で変数の大きさの配列を確保できるんだけど,
VC++とかはできないし.
// int Hoge[ iSizeX ][ iSizeY ]; とか
// iSizeX, iSizeYはint型の変数

で,私はエムアロック,リアロック,シアロックと読みます.

78 :デフォルトの名無しさん:03/05/22 09:51
>>77
> // int Hoge[ iSizeX ][ iSizeY ]; とか
> // iSizeX, iSizeYはint型の変数

やっぱりスタックオーバーフローを避けるためにも
どのコンパイラでも

int *piHoge = (int*)malloc(sizeof(int) * iSizeX * iSizeY);

とした方がいいよ
C++なら

int* piHoge = new int[iSizeX][iSizeY];

79 :デフォルトの名無しさん:03/05/22 13:02
マローク

80 : :03/05/22 21:09
>>78
配列に対してnewするのは嫌だYO

81 :デフォルトの名無しさん:03/05/25 10:37
>>78
C++でも、クラスのインスタンスを作るとき以外(単純なintの配列とか)には
みんなmallocを使う漏れは逝ってよしですか?

82 :デフォルトの名無しさん:03/05/25 10:41
>>81
逝ってよし

83 :デフォルトの名無しさん:03/05/25 10:52
::operator new()にしとけ

84 :デフォルトの名無しさん:03/05/25 11:48
えっと、これはnewだからdeleteで、これはmallocだからfreeか・・・なんて面倒じゃん。統一しようよ。

85 :デフォルトの名無しさん:03/05/25 13:04
C++ で、コンテナクラスライブラリ(可変長文字列/配列)使っていたら、
malloc なんか使う機会無いはずだぞ。みんな new で済むはず。



86 :デフォルトの名無しさん:03/05/25 18:19
>>81
>(単純なintの配列とか)には

配列ってそんなに頻繁に使うかなー?
CからC++に移行してから配列変数はあんまり使わなくなった
STLのコンテナクラス、stringクラスとか使うほうが便利なんで

87 :デフォルトの名無しさん:03/05/25 19:13
>>86
何があってもchar *を使わないで下さいね。

88 :デフォルトの名無しさん:03/05/26 07:38
>>86
いまどき使わんて・・・

89 :山崎渉:03/05/28 12:45
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉

90 :デフォルトの名無しさん:03/06/02 01:02
sage

91 :デフォルトの名無しさん:03/06/02 08:50
>>87
char * は配列変数じゃないんだよね

92 :デフォルトの名無しさん:03/06/02 09:57
そーいや俺、
malloc使ったことねーや

93 :デフォルトの名無しさん:03/06/02 13:34
俺も。いつも全てreallocですましている。mallocもfreeもいらねぇ。

94 :デフォルトの名無しさん:03/06/21 17:05
ぐわぁ。悲しかった

95 :山崎 渉:03/07/15 10:41

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄

96 :山崎 渉:03/07/15 14:06

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄

97 :デフォルトの名無しさん:03/07/19 07:38
Windowsにsbrkはないですよね
Windowsで独自malloc作った人いますか?

98 :デフォルトの名無しさん:03/07/19 09:08
>>97
Microsoftが作ってるよ。

99 :デフォルトの名無しさん:03/07/19 09:14
>>98
ネタですか?

100 :デフォルトの名無しさん:03/07/19 09:55
win32のヒープには自動拡張オプションがあるからsbrkは不要

101 :デフォルトの名無しさん:03/07/19 11:00
自己参照構造体の場合はよく使うが。

102 :デフォルトの名無しさん:03/07/20 00:16
クラスでラップして隠すとか。~CDate(){free(_lpDate);}

103 :デフォルトの名無しさん:03/07/24 12:36
char *str;

str=(char*)malloc(112);

str="abo--n";

104 :山崎 渉:03/08/02 02:23
(^^)

105 :山崎 渉:03/08/15 16:40
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン

18 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)