[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 05/09 11:53 / Filesize : 185 KB / Number-of Response : 845
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C言語なら俺に聞け(入門篇) Part 15



1 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 06:14:52 ]
C言語の入門者向け解説スレです。
・C++言語はスレ違いです。
・分からない事をなるべく詳しく書いて下さい。
・ソースコードを晒すと答えやすくなるかもしれません。
・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。

前スレ
C言語なら俺に聞け(入門篇) Part 14
pc11.2ch.net/test/read.cgi/tech/1181735298/


教えて欲しいのではなく丸投げしたいならこちらへ
C/C++の宿題を片付けます 91代目
pc11.2ch.net/test/read.cgi/tech/1182607405/

641 名前:639 mailto:sage [2007/07/04(水) 03:07:44 ]
では、64文字目以降の改行までを無視することはできますか?
fflush(stdin);
してしまうと、リダイレクトされてきた時に
改行以降も全て捨てられてしまうのでは?

642 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 03:16:35 ]
hoge[62] = 0;
hoge[63] = 1;
fgets(hoge, 64, stdin);
if(hoge[63] == 0 && hoge[62] != '\n') {
scanf("%*[^\n]s");
getchar();
}

643 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 08:40:22 ]
int *p,a;
p=&a;
ってやったら
*pはaと同じ(*p=a)になるんでしょ
でも@=&aとやらず*p=aはなんでダメなの?


644 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 08:43:50 ]
*p==a
p==&a

645 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 08:48:28 ]
int *p,a;
p=&a;
*p = 10;
printf("%d\n",a);
a = 20;
printf("%d\n",*p);

646 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 08:50:31 ]
pが未初期化だとどこさしてるかわからんのに
その先に値を書き込もうとするか

647 名前:デフォルトの名無しさん [2007/07/04(水) 12:10:01 ]
STL勉強してるんだけど

vector<string>とかできるの?

648 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 12:10:52 ]
スレタイ読めないの?

649 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 12:42:43 ]
試せば分かることをわざわざ聞きにくるやつに
スレタイを正しく読むのは難しいだろ



650 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 13:05:10 ]
試して出来ないから聞いてんじゃないの? 
少しは予測しろよw

651 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 13:16:20 ]
それは有り得ない話だ。

652 名前:デフォルトの名無しさん [2007/07/04(水) 13:20:44 ]
STL勉強してるんだけど

vector<vector>とかできるの?
vector<vector<int>>とか
vector<vector<vector>>
とかできるの?

653 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 13:25:34 ]
これはひどい

654 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 13:31:33 ]
スレタイくらい読め

655 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 13:58:39 ]
STLはC言語では使えん

vector<vector<int> >
vector<vector<vector<int> > >
で試せ

656 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 14:34:52 ]
つ[名前空間]
まあスレタイも読めないおばかさんは一生悩んでろ。

657 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 17:09:49 ]
switch( uMsg )

case WM_CREATE:
test1=1;
test2=2;
break;

case WM_CREATE:
{
test1=1;
test2=2;
}
break;

case WM_CREATE:
{
test1=1;
test2=2;
}
return;

case WM_CREATE:
{
test1=1;
test2=2;
return;
}


どれ使ってもOK?

658 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 17:11:06 ]
OK

659 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 17:11:26 ]
{}で囲むのは途中で変数宣言したいとき。
breakとreturnは意味が違う。



660 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 17:16:09 ]
別に変数宣言しなくても囲ってもいい

661 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 18:09:43 ]
switch、caseに関わらず、別にスコープは好きなところで使って構わない。


662 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 18:14:36 ]
関数内ならね。

663 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 18:16:27 ]
>>641
fflushは入力バッファに対してどう作用するか定められていない
(出力バッファを吐き出すことだけが規定されている)ので、
このスレとしては知らないという答えになる。

664 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 18:50:24 ]
{ }は見やすくするためにつけたけど、どこでも使ってOKなのね。
breakとreturnはよく考えるとぜんぜん意味が違う事に気づいた
なぜreturnが入ってたんだろうw

665 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 19:07:30 ]
関数と定義するとき、プロトタイプ宣言が必要って言われてますよね?
プロトタイプ宣言って必要なんですか?
なくても動くと思うのですが・・・

666 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 19:13:08 ]
なくても動きますし、必須でもありません。
あなたがいらないと思うなら必要ではないでしょう・

667 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 19:16:40 ]
なくても必ず正しく動くわけじゃないぞ。

668 名前:デフォルトの名無しさん [2007/07/04(水) 19:20:45 ]
自前の関数を関数内で使うときじょんじょが大事になる

669 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 19:35:19 ]
例えばいつもおなじみのstdio.hという標準入出力ライブラリのヘッダファイルには
printf関数やらfopen関数やらのプロトタイプ宣言がずらずらと並んでる
stdio.hにはプロトタイプ宣言だけが書かれてて,printf関数やfopen関数の実装はstdio.cに記述されている

ライブラリってのはヘッダファイルとソースファイルが対になっていて
ヘッダファイルに「このライブラリはこんな機能を提供しますよ〜」っと目次みたいなもんを書いてるわけだ
それがプロトタイプ宣言

なんでこんなことを分けるするかってのはソースを分割して機能別にライブラリ化するため
1個だけのソースファイルでプログラミングしてる時は必要無いけど普通はプロトタイプ宣言も書いておく
main関数の前にずらずら別の関数の実装が並んでいると,どこがmainの始まりか探すのが大変なのもある




670 名前:デフォルトの名無しさん [2007/07/04(水) 20:18:02 ]
年と月を入力して
2007 7
sun mon tue wed thu fri sat
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

みたいな万年カレンダーを作りたいんですけど、アルゴリズムを詳しく教えてほしいです。
よろしくおねがいします。

671 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 20:19:53 ]
あ、数字がずれてる…。
sunのnの下に1がきてmonのnのしたに2がくる感じです

672 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 20:38:15 ]
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4502.txt

上のプログラムは、入力した文字を逆向きにプリントしちゃうはずの
自分でゆうのもなんですが、優れものなんです。が
実行すると、何故か変な文字列が入っちゃいます><
こんな感じ↓(testと入力した場合)
www.uploda.org/uporg888409.jpg.html

どなたか、原因を教えてくださいな
教えてくれた方に、僕のケツ穴差し上げます><


673 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 20:42:44 ]
ソース見た瞬間意識が朦朧としてきた

674 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 20:49:51 ]
>672
文字列の終端は'\n'じゃない
てめえの汚えケツ穴なんぞ誰がいるかってんだ

675 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 21:05:09 ]
>>673
朦朧としてると、こっちから押し倒しちゃうze(はぁと

>>674
ありがちんこ☆
\0か!


676 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 21:09:59 ]
あえて断言しよう

>>674は絶好のチャンスを失った、と。


677 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 21:12:21 ]
>>670
#include <unistd.h>
int main(int argc, char *argv[]){return execlp("cal", "cal", argv[2], argv[1], NULL);}


678 名前:デフォルトの名無しさん mailto:age [2007/07/04(水) 21:14:37 ]
例えば、以下のような4つの要素からなる列が複数あるものに対して、
次のような処理:
(1)1番目の要素が同一の場合、後から出現したものを採用する
(2)3番目の要素でソートする
を行いたいのですが、どのようなアルゴリズムになりますか?

例)
0010 ABC 60 70
0022 BCD 56 76
0010 EFG 85 34
0003 HIJ 70 98



0010 EFG 85 34
0003 HIJ 70 98
0022 BCD 56 76


679 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 21:15:51 ]
普通に配列につめてソートします。



680 名前:678 mailto:age [2007/07/04(水) 21:50:09 ]
>>679
普通に配列からソートする場合、
どのように(1)の条件をクリアしますか?
そこで困っています。

681 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 21:59:03 ]
同じものが出てきたら上書きする

682 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 22:25:35 ]
1番目の要素が同一かどうか調べて、同一なら上書きすればいい(例だと、消去してる?)

683 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 22:29:19 ]
>>680
0000番から9999番までの箱を用意してそれぞれの箱に入れていく。
で、既に入ってる場合は入ってるものを捨てて代わりを入れる。

全部入れ終わったらソート。

無駄だらけだけど分かりやすい考え方だとこんな感じ?

684 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 22:30:50 ]
int i, j, k, n;
for(i=n-1; i> 0; i--) {
   for(j=i-1; j>=0; j--) {
      if(a[j]==a[i]) {
         for(k=j; k<n-1; k++) a[k] = a[k+1];
         n--;
         i--;
      }
   }
}
こんな感じで同じものを消去すりゃいいんじゃね?

685 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 22:31:14 ]
ソートしてからの方が効率いいだろ・・・

686 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 22:34:55 ]
>>685
ソートしちゃうとどれが先にでてきたか分からなくならない?
いや、マージソートとかならいいけど

687 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 22:38:45 ]
>>686
そのための安定ソートだろ
入門篇ならバブルソートだろう

688 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 22:44:16 ]
>>685
ソートは3番目の要素でするんだぞ?

689 名前:678 mailto:age [2007/07/04(水) 22:45:58 ]
>>683
それ考えたんですけど、
実際は0000000000番から9999999999番まで(10桁)あり、
番号も全部あるわけじゃないからやっぱり効率悪いですよね。
はやさも求められているんで・・・

ハッシュとか2分探索とか使うんですかね?



690 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 22:50:51 ]
>688
一番目の要素で安定ソート
一番目の要素でのかぶりを削除
三番目の要素でソート
ってことだろ。

691 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 22:53:29 ]
インデックス情報を付加しといて qsort という手もある。

692 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 23:05:49 ]
標準ライブラリに無いのが難点だけど
重複してるかどうか調べるのはハッシュ使うのがいいと思う

693 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 23:08:01 ]
インデックス用の配列mallocしてqsortが一番楽だろ

694 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 09:38:27 ]
>>672
それどっかの入門書に載ってたぞ

695 名前:デフォルトの名無しさん [2007/07/05(木) 15:50:14 ]
CからつかえるフリーのXMLライブラリないですか?

696 名前:デフォルトの名無しさん [2007/07/05(木) 15:53:13 ]
何方か標準関数のプログラムの作り方教えてください

697 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 15:54:07 ]
日本語でもう一度

698 名前:デフォルトの名無しさん [2007/07/05(木) 15:55:33 ]
>>672見たらmain内で関数宣言してるけど、これはなに?
そういう手法があるの?関数の内容よりそっちに目がいった。
こんなことしたことないけど、どうなの?

699 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 15:58:24 ]
そりゃキミが知らないだけだろ



700 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 16:06:00 ]
プロトタイプ宣言くらい関数内でできる。

701 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 16:41:17 ]
次のような関数を作りました。
Vertices isMaxNoVer(Vertices R[]){
  Vertices max;
  int i, count=0;

  max.num = 0;
  max.deg = 0;
  max.no = 0;

  count = countVer(R);

  for(i=0; i<count-1; i++){
    if(max.no < R[i].no){
      max = R[i];
    }
  }

  return max;
}


この関数を、次の再帰関数を使って二度目に呼び出した時、
動作がおかしくなり、以下のようなおかしな値が入ります。
test expand 1, 8 -1073747304 134516287
更にその後2度目のtest expand 3に入る前に
セグメントエラーを起こして止まってしまいます。
これだけの情報でわかって頂けるかわかりませんが、
誰か助けてください。

702 名前:701 mailto:sage [2007/07/05(木) 16:42:43 ]
void expand(Vertices R[]){
  Vertices p, buf[N], Rp[N];

  while(countVer(R) != 0){
    p = isMaxNoVer(R);

    printf("test expand 1, %d %d %d\n", p.num, p.deg, p.no);
 
    if((countVer(Q) + p.no) > countVer(Qmax)){
      syokikaVer(buf);
      mataha(Q, p);
      printf("test expand 2\n");
      syokikaVer(buf);
      ganma(buf, p.no, G);
      printf("test expand 3\n");
      syokikaVer(Rp);
      katu(Rp, buf, R);
      printf("test expand 4\n");

703 名前:701 mailto:sage [2007/07/05(木) 16:44:38 ]
      if(countVer(Rp) != 0){
numberSort(Rp);
expand(Rp);
      }
      else if(countVer(Q) > countVer(Qmax)){
copyVer(Qmax, Q);
      }
      hiku(p, Q);
    }
    else return;
    hiku(p, R);
  }
  return;
}

QやQmax、Gはグローバル変数です。

704 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 18:03:30 ]
>>701
それだけだと分からんなぁ〜
katu(Rp, buf, R);
numberSort(Rp);
このへんの関数に問題ありそうだけど

705 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 18:29:52 ]
質問です。
今、以下のような関数と構造体を作ったのですが、

typedef struct
{
    int Length, Maximam, ValueSize;
    void* Array;
} ArrayList;

char* GetValue(ArrayList* list, int index)
{
    char* data = (char*)list->Array, item = malloc(list->ValueSize);
    int i = 0;
    unsigned int p = index * list->ValueSize;
    if(list->Length > index && item != NULL) {
        for(; i < list->ValueSize; i++) {
            item[i] = data[p + i];
        }
        return item;
    } else {
        return NULL;
    }
}

以下続く

706 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 18:33:11 ]
item

707 名前:705 mailto:sage [2007/07/05(木) 18:33:11 ]
void AddRange(ArrayList* list, const void* values, int length)
{
    char* data = (char*)list->Array, item = (char*)values;
    unsigned int i = 0, itemlength = length * list->Maximam, index = list->Length * list->ValueSize;
    if(list->Length + length >= list->Maximam) {
        list->Maximam += length * 2;
        list->Array = realloc(list->Array, list->ValueSize * list->Maximam);
    } for(; i < itemlength; i++) { data[index + i] = item[i]; }
    list->Length += length;
}

void main (void)
{
    ArrayList list = { 0, 4, sizeof(int), malloc(sizeof(int) * 4) };
    int i = 0;
    int s[10] = { 0, 1, 2, 3, 4, 5, 6 ,7 ,8 ,9 };
    AddRange(&list, s, 10); AddRange(&list, s, 10);
    for(; i < list.Length; i++) { printf("%d\n", *((int*)GetValue(&list, i))); }
}

どうしてもGetValueのchar* itemの領域が確保できないんです。
他にも、listのArrayをいじってもヒープが壊れてますとか言われるのですが…
なにかやってはいけないことでもやってしまっているのでしょうか?
行数圧縮しているため読みにくいとは思いますが、よろしくお願いします。

708 名前:705 mailto:sage [2007/07/05(木) 18:34:36 ]
ちなみに、元のソースではすべて

int i = 0;
int j = 0;

のように宣言しています。

709 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 18:38:04 ]
itemはchar型変数として宣言されてる
*itemで宣言しなきゃダメだろ



710 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 18:41:16 ]
>>709
元ソースでは
char*になってたんですが…
削りすぎた orz

711 名前:705 mailto:sage [2007/07/05(木) 19:07:04 ]
いろいろ試してみたのですが、
AddRange(&list, s, 10);を
連続でなくとも2回使用するとGetValueのitemの中がNULLに、
3回目からはAddRange(&list, s, 10);で行われるreallocで
ヒープが壊れているというエラーが出てくるようです。

何が悪いんだろ orz

712 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 19:09:20 ]
AddRangeの2回目でヒープ壊してる
itemlengthとreallocのサイズが乖離してる

713 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 19:17:30 ]
つーかGetValue()って範囲チェック除けば
char *GetValue(ArrayList list, int index)
{
return (char*)list.Array + index * list.ValueSize;
}
これで十分じゃね?

714 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 19:24:04 ]
itemlength = length * list->Maximam → itemlength = length * list->ValueSize
でいけるかな?


715 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 19:29:48 ]
>>712
itemlength = length * list->Maximam
のMaximamが原因でした。ValueSizeにするはずだったのに…
1回の使用だけだとエラーが出なかったので問題ないと思い込んで
気づかなかった orz

>>713
そんなやり方もあったんですか…
void*だとサイズわかんねぇよって怒られるのでchar*にして
コピーする方法しか知りませんでした。

>>714
全くその通りです。
まともにコードかけるようになるのは時間がかかりそうだ orz

ありがとうございました!

716 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 19:34:00 ]
素直に型を限定すればいいのに

717 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 21:55:47 ]
int型の数字を文字列に変換するのってどうやるん?
具体的に言うと
int n = 34;
char* nStr = intToStr( n ); /* nStr = "34" */
という風にしたいのだけれど。

718 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 22:03:14 ]
char *buf;
int n=34;
buf=メモリ確保
ssprintf(buf,"%d",n);

719 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 22:05:12 ]
>>717
sが一個多かった
sprintf




720 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 22:35:49 ]
>>718
サンキュ!
inline char* int2str( int n )
{
char *buffer;
buffer = malloc( sizeof( char ) );
sprintf( buffer, "%d", n );
return buffer != NULL ?
buffer:
"FAULT!!";
}
一応こういう感じで。

721 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 22:43:17 ]
>>720
>buffer = malloc( sizeof( char ) );
1バイトしか確保できないよ
'\0'しか格納できない
もう少し多めに確保して
>return buffer != NULL ? buffer:"FAULT!!";
buffer の確保が失敗した場合 sprintf( buffer, "%d", n ); でエラーが出る
buffer = malloc( sizeof( char ) );
if(buffer){
sprintf( buffer, "%d", n );
return buffer;
}
else {
return "FAULT!!";
}
のほうがいい気がする

722 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 22:57:49 ]
>>721
せっかくならmallocも直してやれよw
11桁くらい確保すれば十分の気がする

723 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 23:16:28 ]
>>720
んじゃ buffer = malloc(sizeof( char ) *12);
または buffer = malloc(12);

>>722
符号付の場合、'\0'いれると12文字になる

724 名前:デフォルトの名無しさん [2007/07/05(木) 23:40:25 ]

最強の関数教えてください


725 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 23:42:07 ]
VIPでやれ

726 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 23:42:25 ]
どう考えても main だろ。

727 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 23:43:51 ]
>>724
abort

728 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 23:49:33 ]
exit

729 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 01:35:39 ]
buffer = (char*)malloc(sizeof( char ) *12);
        ↑これは?



730 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 01:36:56 ]
bufferの型にあわせてあるんだろ。
C++じゃ必須の書き方だがCじゃいらん。

731 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 01:47:14 ]
CとかC++の問題じゃねーだろ・・・知ったかの初心者がレスしてんのか、ここは?
キャスト演算子とか知ってなさそうだな・・・平気で型の違う変数をキャスト演算子なしで
代入しちゃうようなヘボプログラマーかw

732 名前:デフォルトの名無しさん [2007/07/06(金) 01:48:12 ]
配列の添え字に変数を指定することは可能でしょうか?


733 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 01:54:01 ]
コンパイラが自動的にやってくれるのを当てにして失敗するプログラマー(プ

734 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 01:56:50 ]
>>730 (・∀・)ニヤニヤ
> bufferの型にあわせてあるんだろ。
> C++じゃ必須の書き方だがCじゃいらん。

735 名前:732 mailto:sage [2007/07/06(金) 01:57:25 ]
自己解決しました
可能っぽいですね

736 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 02:01:26 ]
>>730 (・∀・)y-~~~ ヤニヤニ

737 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 02:01:26 ]
C だと void* から別のポインタ型への変換は暗黙にできるだろ・・・常識的に考えて。

738 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 02:04:22 ]
void*が無かった頃のCならmallocはchar*を返したから
キャストしないと警告もんだとか言い出してみる。

739 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 02:04:47 ]
>>730 (・∀・)ニヤニヤ ヘボプログラマー必死だな



740 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 02:08:16 ]
>>738
malloc で気を使っても、
どっかで void* 使ってたらそれだけでアウツだけどな。
その環境なら。

741 名前:732 ◆L/nntMgEC6 [2007/07/06(金) 02:11:36 ]
>>735
可能なんですか?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<185KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef