お前らがmalloc使う場面、オレに教えてみないか?
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNG00052
NGNG00064
NGNG0007デフォルトの名無しさん
NGNG00082
NGNG00094
NGNG00104
NGNG00114
NGNG0012デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNG0015デフォルトの名無しさん
NGNG0016デフォルトの名無しさん
NGNG0017デフォルトの名無しさん
NGNG0018デフォルトの名無しさん
NGNGwhile( malloc(1) ) {
printf(">>1は氏ね\n");
}
0019デフォルトの名無しさん
NGNGせっかく確保した領域がたったの1バイトとは、、おまえもちっちゃい人間だな
0020デフォルトの名無しさん
NGNG002120
NGNG0022デフォルトの名無しさん
NGNGまあmalloc使わなくてもいい言語つかえばらくなんだが。
そうも逝かない仕事をしているのか?
0023デフォルトの名無しさん
NGNGPCとかメモリを十分使える環境ならC++使うし、
組み込みとかメモリが無い所では動的に確保したりしないし。
00241
NGNGいや、オレ自身もほとんど使った事無いから他のやつらはどうなのか、と聞いてみたかっただけだ
0025デフォルトの名無しさん
NGNGこの時期はちょうど大学でmallocを教える時期だね。
0026デフォルトの名無しさん
NGNGmallocはDIBを操作する頃になると
やけに、多発する。
メモリリークも。
自在に幅を変えられるので、
複雑なソースに重宝する。(僕は)
0027デフォルトの名無しさん
NGNGよく調べたねw
0028デフォルトの名無しさん
NGNG002926
NGNG信じてくれーーー
0030デフォルトの名無しさん
NGNGなるほど。今はmallocの季節ですか。
他の季節を関数名で表現するとどうなるんだろう
0031デフォルトの名無しさん
NGNG003226
NGNG良くわかったね。
DIB関係で?
0033デフォルトの名無しさん
NGNGC++ の new 使へ。
↓↓↓ 以下 enum の使いでについて語ってくれ ↓↓↓
0034デフォルトの名無しさん
NGNG#defineの方が絶対いい。
0035デフォルトの名無しさん
NGNGhttp://www5b.biglobe.ne.jp/~ryo-kyo/yumesuzuna.html
0036デフォルトの名無しさん
NGNGそれでも不要になったオブジェクトにはnullったりするように心がけてますよ。
System.gc()とかも使ったり
0037名無し@沢村
NGNGいたら返事してみろ?
いいかmallocは関数を抜けてもそのメモリが消えないようにするために使うもんであって、freeは別の場所で使うもんなんだよ!!わかるか?
おまいらよ、わかるかな?
0038名無し@沢村
NGNG「予約ビット」というのはメーカーが将来の予約のためにメモリ内の一部のビットを確保しているもので、プログラマが使用してはいけない領域なんだよ。
この「予約ビット」にアクセスするとプログラムが暴走したりシステムがハングしてりして大変危険なんだよ。
また「予約ビット」はメモリ何のどこに置かれているかはメーカーによってまちまちで、例えばmallocで1000バイト確保した場合その1000バイトの中に入っているかもしれないんだよ。
このようにひとくちにmallocでメモリを確保するといっても「予約ビット」というおまいらには予想もつかない落とし穴があることを忘れるな!!!
0039デフォルトの名無しさん
NGNG0040デフォルトの名無しさん
NGNG沢村の誤解を招く発言を訂正します。
沢村のはC++の話なので、
Cの方がブロック内の最前でしか変数を宣言できないことを知りません。
また、予約ビットなんて気にしてたらmallocどころか[]←さえ使えません。
そんなのはOS,コンパイラに任せてあげてください。
沢村の話はビル・ゲイツ関連だけ信じるように。
0041デフォルトの名無しさん
NGNG0042popo
NGNGなぜなら、後で拡張性を考えずにすむから。
常に∞を意識してギリギリ限界まで自由に使いたいというのが漏れのポリシー。(w
mallocもnewもお気に入り、常に使いまくっている。
おかげで、メモリーリークをよく起す(w、いや、起していた。
天井のある部屋なんてつまらないだろう?そう思わないか?
0043bloom
NGNG0044デフォルトの名無しさん
NGNGそれはやりすぎ。
004544
NGNG//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 バイト
だった。
0046デフォルトの名無しさん
NGNGそれ業務でやったら瑕疵責任賠償モンだぞ
0047デフォルトの名無しさん
NGNG予約ビットのために、数MB/GBのメモリの中の数bitを適当に確保するだなんて、、、阿呆な仕様だな。
>メーカーが将来の予約のためにメモリ内の一部のビットを確保しているもので、プログラマが使用してはいけない領域
>例えばmallocで1000バイト確保した場合その1000バイトの中に入っているかもしれないんだよ。
仮にあったとしても、メモリ管理もOSの仕事かと。そんな大切なものをheap領域に置くほうが悪い。
っていうか何のための予約ビットなんだかわからない。
...あ、ごめん。沢村の脳内コンピュータの話をしてるなら、多分いいんだろ。
一般的なコンピュータ使っている人間は気にする必要なし。
0048デフォルトの名無しさん
NGNG0049デフォルトの名無しさん
NGNGここまでメチャクチャ言われると反論したくなる
気持ちはわかる。けど、やめれ。
つけあがるから。永遠に続くぞ。while(1);のように
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()へのポインタ
こんな感じ。
0051デフォルトの名無しさん
NGNG一言も書かれていなかった。
それから数ヶ月の間、人並みにmalloc()する事は漏れの憧れだった。
0052デフォルトの名無しさん
NGNG0053デフォルトの名無しさん
NGNGclass A;
A*
ACreater::CreateA()
{
static A a[10];
return a;
}
だとだめです。たすけてくらさい。
0054デフォルトの名無しさん
NGNGmallocとreallocは
postgresでデータを取るときに使うがな
データは可変だから文字列とか動的に取らないといけないわけ
まぁ静的に取ってもいいがオーバーフローになったらいやだし
マジレスしてみた
0055デフォルトの名無しさん
NGNG#newでもよし
0056デフォルトの名無しさん
NGNGファイルを1回で全て読むとき。
>誰か・・・。
質問。
僕はよく、外部でfreeを要求するような関数を書くんだけど、
こういうのはやばい??
それともしっかり説明付けとけばOK?
もう一個、ローカル関数をリターンするのはNG?(Cの場合)
0057デフォルトの名無しさん
NGNG自動変数で宣言したら、スタックオーバーフローしちまうよ。
静的に確保したおいたら、プログラム自体が莫大なサイズになるし。
0058デフォルトの名無しさん
NGNG基本的なことだが
予め個数の予想できないデータ群を保持するのに
リスト構造とか必要にならない?
0059デフォルトの名無しさん
NGNGこういうのはやばい??
それともしっかり説明付けとけばOK?
free()を内包した関数を用意して、その関数とセットで使わせる方がいい。
>もう一個、ローカル関数をリターンするのはNG?(Cの場合)
意味不明。Cは関数内で関数を定義することができない。また動的に関数を定義することもできない。
static 関数のポインタをリターンする事を言ってるのか?だとしたらそれはOK
0060デフォルトの名無しさん
NGNGデータ入力したら勝手に新たに領域確保してくれるし
自分で拡張の処理をコーディングする場面なんてないし
0061デフォルトの名無しさん
NGNG0062デフォルトの名無しさん
NGNG0063デフォルトの名無しさん
NGNG0064デフォルトの名無しさん
NGNGリークしまくりだった。がっかり。
0065デフォルトの名無しさん
NGNG遅くなったけど、thx!
専用の破棄用関数をつくるわけですな。
なるほど。
あと、関数じゃなくて変数でした。すいません。
0066デフォルトの名無しさん
NGNG0067デフォルトの名無しさん
NGNG0068デフォルトの名無しさん
NGNG和訳:岩男
0069デフォルトの名無しさん
NGNGマロック。
alloc:割当てる, 充当する(by goo)
だってさ。
0070デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNG0072デフォルトの名無しさん
NGNG0073デフォルトの名無しさん
NGNGシングルトンスレへ。
0074デフォルトの名無しさん
NGNG0075デフォルトの名無しさん
NGNG0076デフォルトの名無しさん
NGNGそんなときに malloc()
0077デフォルトの名無しさん
NGNGg++だと関数内で変数の大きさの配列を確保できるんだけど,
VC++とかはできないし.
// int Hoge[ iSizeX ][ iSizeY ]; とか
// iSizeX, iSizeYはint型の変数
で,私はエムアロック,リアロック,シアロックと読みます.
0078デフォルトの名無しさん
NGNG> // int Hoge[ iSizeX ][ iSizeY ]; とか
> // iSizeX, iSizeYはint型の変数
やっぱりスタックオーバーフローを避けるためにも
どのコンパイラでも
int *piHoge = (int*)malloc(sizeof(int) * iSizeX * iSizeY);
とした方がいいよ
C++なら
int* piHoge = new int[iSizeX][iSizeY];
0079デフォルトの名無しさん
NGNG配列に対してnewするのは嫌だYO
0081デフォルトの名無しさん
NGNGC++でも、クラスのインスタンスを作るとき以外(単純なintの配列とか)には
みんなmallocを使う漏れは逝ってよしですか?
0082デフォルトの名無しさん
NGNG逝ってよし
0083デフォルトの名無しさん
NGNG0084デフォルトの名無しさん
NGNG0085デフォルトの名無しさん
NGNGmalloc なんか使う機会無いはずだぞ。みんな new で済むはず。
0086デフォルトの名無しさん
NGNG>(単純なintの配列とか)には
配列ってそんなに頻繁に使うかなー?
CからC++に移行してから配列変数はあんまり使わなくなった
STLのコンテナクラス、stringクラスとか使うほうが便利なんで
0087デフォルトの名無しさん
NGNG何があってもchar *を使わないで下さいね。
0088デフォルトの名無しさん
NGNGいまどき使わんて・・・
0089山崎渉
NGNGピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
0090デフォルトの名無しさん
NGNG0091デフォルトの名無しさん
NGNGchar * は配列変数じゃないんだよね
0092デフォルトの名無しさん
NGNGmalloc使ったことねーや
0093デフォルトの名無しさん
NGNG0094デフォルトの名無しさん
NGNG0095山崎 渉
NGNG__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
0096山崎 渉
NGNG__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
0097デフォルトの名無しさん
NGNGWindowsで独自malloc作った人いますか?
0098デフォルトの名無しさん
NGNGMicrosoftが作ってるよ。
0099デフォルトの名無しさん
NGNGネタですか?
0100デフォルトの名無しさん
NGNG0101デフォルトの名無しさん
NGNG0102デフォルトの名無しさん
NGNG0103デフォルトの名無しさん
NGNGstr=(char*)malloc(112);
str="abo--n";
0104山崎 渉
NGNG0105山崎 渉
NGNG│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
■ このスレッドは過去ログ倉庫に格納されています