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


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

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



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

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

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

331 名前:プリンがー mailto:aaa [2007/10/24(水) 12:53:45 ]
>>318
プログラムってどこで実行できるんすか??


332 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 12:54:43 ]
NG

333 名前:takumi [2007/10/24(水) 14:13:59 ]
XPでvisualstudioを使ってます。
問題:長さ100のint型配列 int a[100]がある。a[0]〜a[99]には整数が収められているする。
この100個の中で一番小さい数を求め、画面に出力するプログラムを作成せよ。
出力形式は「ans.=???」とせよ。???の部分は答え。

なんですが、全くわからないので教えて下さい。。

334 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 15:08:21 ]
宿題スレへ
pc11.2ch.net/test/read.cgi/tech/1193150915/l50

335 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 16:24:03 ]
コテ付目欄空欄…
どこの中学生掲示板だよ

336 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 17:59:26 ]
つか入力がわかっているのになぜscanfを使う必要あるんだよ。

337 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 21:19:58 ]
未経験ということでソフトウェア開発企業に入社したんだけど、whileのところで早速詰まった('A`
0〜9 までの数字を、0 から1個ずつ増やしながら 10行表示しなさいっていうプログラムを作るんだけど、
0
01
012
0123
01234
012345・・・
とはならずに
0
1
2
3
4
ってなっちゃいます。というかそういう風に書いてるのもわかるんですが、
#include <stdio.h>
int main(void)
{
int a = 0;

a = 0;
while(a < 10)
{
printf("%d\n" ,a);
a++;
}

return 0;
}
↑whileの中をどうすればいいんでしょう・・・。

338 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 21:26:55 ]
while(a < 10)
{
int b = 0;
while(b <= a)
{
printf("%d", b);
b++;
}
printf("\n");
}

339 名前:デフォルトの名無しさん [2007/10/24(水) 21:29:01 ]
#include <stdio.h>
int main(void)
{
int a,b;

for(a=0;a<10;a++)
{
for(b=0;b<=a;b++)printf("%d" ,b);
printf("\n");
}

return 0;
}



340 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 21:32:40 ]
>>338
ああああありがとうございます!
whileの中にwhile使うとは盲点。
流れも理解できましたありがとうございます!

341 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 21:35:51 ]
>>340 for文を使ったほうがベター

342 名前:デフォルトの名無しさん [2007/10/24(水) 21:38:14 ]
そこまで出来ないでよく仕事になるな 入って2週間以内とかか? それならいい

343 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 21:38:43 ]
>>341
そうなんですよね。
他にもwhileを使って、2個入力した文字列が、同じ文字列かどうか判断するプログラムを作ったんですが、
ifelse使った方が手っ取り早かったり、一応基本中の基本ということで頑張ってますが、
とりあえずとことん覚えてみようと思います。

344 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 21:40:48 ]
>>342
まだ3日目です('A`)('A`)('A`)
初日はOSインスコとかパソコンに関する事を教わって(というか何回もやってきた事なので余裕でした)
二日目は%dやらfloat=小数点やら、long=スゲーでかい数とか、配列とかを覚えて
本日三日目でif else for を覚えたんですが、whileがなんかスゴイ曲者というか、問題がクセものでてんてこ舞いです。。。

345 名前:デフォルトの名無しさん [2007/10/24(水) 21:44:45 ]
>>343
実戦力高めるならSTLだな
たとえば2つの文字列比較するならこうやればいい

#include <iostream>
#include<string>
using namespace std;

main(){
string a,b;
a="こんにちは"; b="こんばんわ";
cout<<a<<" と "<<b<<"は ";
if(a==b)cout<<"一致"; else cout<<"違う";
}

346 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 21:59:46 ]
行列を計算するときにライブラリって使えるの?
固有値を求めたいんだけど。

347 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 22:09:40 ]
>>345
初心者(それも++じゃなくてCっぽい)にそんなこと教えたら、
同じ文字列が入ったchar配列を==比較して「あれ? 同じのはずなのに……」てことになるぞ

348 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 22:16:49 ]
>>346
標準ライブラリーにはない
特殊な科学技術計算用のライブラリーを手に入れるか、自作するか

349 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 08:26:44 ]
>>346
clapack



350 名前:デフォルトの名無しさん [2007/10/25(木) 22:25:22 ]
typedef struct{
int hoge;
int hage;
int hige;
int huge;
} HOGE;
と言う構造体があるとして、hoge = 1; hage = 0; hige = 1; huga = 1;となっているとします。
その構造体の中で、値が"1"になっている物を見付けたいのですが、そういうことはできないですか?
構造体内の変数の値を調べ、それが条件にあっていれば別々の処理をしたいです。


351 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 22:28:28 ]
Cじゃムリ。
リフレクションのある言語ならできる。

352 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 22:39:37 ]
意味がわからんぽ

メンバ名で参照したくないって事?
構造体先頭からのオフセットでアクセスするとかかな

353 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 22:50:11 ]
>>350
配列にしない(できない)理由はあるの?

typedef union{
struct{
int hoge;
int hage;
int hige;
int huge;
}
int array[4];
} HOGE;

354 名前:350 mailto:sage [2007/10/25(木) 22:57:44 ]
>>353
なんですかそれは…
始めてみました。 意味がちょっとわかりません…
その形にしておいて、
HOGE u_hoge;
....
u_hoge.array[0]にしたら、hogeにアクセスできるって事ですかね?

355 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 22:58:37 ]
共用体でググってくるんだ!

356 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 23:55:24 ]
だんだんと解ってくると、プログラム書くのが面白くなってくるなぁと思った超初心者な俺。

357 名前:デフォルトの名無しさん [2007/10/26(金) 00:26:59 ]
fgetsで入力した後'\n'を消す方法はありますか?
あまりポインタは使いたくないんですが・・・

358 名前:aho mailto:sage [2007/10/26(金) 00:29:26 ]
>>350
構造体のポインタを利用してみました。

#include <stdio.h>

typedef struct{
int hoge;
int hage;
int hige;
int huge;
}HOGE;

int main(){
HOGE* hogep = NULL;
try{
hogep = new HOGE();
}catch(...){
printf("new error!\n");
}
/* メンバ変数の初期化 */
hogep->hoge = 1;
hogep->hage = 0;
hogep->hige = 1;
hogep->huge = 1;

printf("%d\n", hogep->hoge);

return 0;
}

359 名前:デフォルトの名無しさん [2007/10/26(金) 00:40:51 ]
>>357
fgets(buf, n, fp);
if (buf[strlen(buf) - 1] == '\n') {
buf[strlen(buf) - 1] = '\0';
}

・・・?



360 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 00:44:21 ]
>>357
fgets(buff, sizeof buff, stdin);
for(i=0; buff[i]; i++) if(buff[i]=='\n') { buff[i] = '\0'; break;}

361 名前:デフォルトの名無しさん [2007/10/26(金) 01:39:24 ]
C++Compiler / Turbo Debugger をzipから解凍したらフォルダに何も入ってなかったんだけど・・・
どこでパス入力するの?

362 名前:教えてください mailto:sage [2007/10/26(金) 03:23:34 ]
C言語についての質問です。
下記の素数か素数でないか調べるコードで、
@変数名にis_primeとありますが、isは何を意味しているのですか?
Ais_prime = 1;とするのがわかりません。
B以下、return 0; まで、どういう流れかわかりません
よろしければ1行ずつ教えてもらえるとうれしいです。

#include <stdio.h>

int main(void)
{
int num, i, is_prime;

printf("判定したい数を入力してください: ");
scanf("%d", &num);

/* 約数があるかどうか調べる */
is_prime = 1;
for(i=2; i<=num/2; i=i+1)
if((num%i)==0) is_prime = 0;

if(is_prime==1 && num > 1) printf("素数です");
else if (num > 1) printf("素数ではありません");

return 0;
}

363 名前:デフォルトの名無しさん [2007/10/26(金) 03:44:59 ]
num is_prime なんだろ

364 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 08:08:18 ]
>>362
適当な数字入れて処理追いかけてみろよ。

365 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 08:13:38 ]
なんにもわかってないってことかよw

366 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 11:02:57 ]
>>362
You is fool.

367 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 11:26:14 ]
>>361
解凍しなおしてみたら?

368 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 12:54:26 ]
You are Shock!

369 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 13:24:17 ]
atofとか解読できなさそうだな



370 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 13:55:39 ]
数値計算において
不等号の>>と>の判別ってプログラム的にどうすべきですかね?

計算は対数でするんだけど。

371 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 14:35:43 ]
差が閾値を越えるかどうかで判定
もしくは比が閾値を越えるかで判定

372 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 15:09:54 ]
その問題では>>と>=で計算方法違うんだよ。
今計算してみると対数の値をexpかけてみて値をみていくと
値がかわってくるのが差が10から15あたりのときみたいだから
閾値を15で計算をかえてみることにするわ。


373 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 15:49:02 ]
for(;loc<100;loc++){
if(loc<100){
 printf("氏名を入力して下さい(空白で終了):\n");
 fgets(data[loc].namae,39,stdin);←この行
 if(!*data[loc].namae)break;
 printf("電話番号を入力して下さい:\n");
 fgets(data[loc].denwa,39,stdin);
 printf("市外局番を入力して下さい:\n");
 fgets(str,9,stdin);
 data[loc].sigai=atoi(str);
}
}
上の行のfgetsをgetsに変えるとEnterでbreakするんですけど
fgetsのままでは動作しません。どうすればfgetsのままで動作しますか?

374 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 16:10:04 ]
>>367
何回解凍しなおしてもダウンロードしなおしても空…
zipファイルはちゃんと容量あるのに解答してできたフォルダには容量が全くなくなる。

375 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 16:15:36 ]
>>374
解凍ソフトは何?
パス付きに対応してないやつなんじゃね?

376 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 16:17:32 ]
>>373
fgetsは改行も取り込むから、

fgets(data[loc].namae,39,stdin);
if(data[loc].name[0] == '\n') break;
これでおk

377 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 16:26:35 ]
>>376
出来ました。ありがとうございます。

378 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 16:30:47 ]
fgetsの解説ですが
ohmoriws1.ms.kagu.tus.ac.jp/1997/sotsuken/miyakosi/c04.html
ここは間違ってる?もしくは誤解される様な感じなのですか・・?

一度参考にしたんですが・・。

379 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 16:46:34 ]
>>378
'\n'を取り除くとも書いてないから間違いとは言えない。
しかし、その直後のfputs()の説明が間違っているから信用できない。



380 名前:デフォルトの名無しさん [2007/10/26(金) 17:20:43 ]
すいません超絶初心者な僕に教えて頂きたいことがあるます

1行64バイトのファイル(行数可変)のデータに何回も文字列の検索を行ういアウトプットするプログラムを作っています。
fgetsを使い何回もファイルを読み込んで一行ずつ比較するというようにできたにはできたのですが、
行数可変で多い場合100000行超えたりするファイルに対してはえらい時間がかかります。

メモリにぶちこんでそこから何回も検索を行いたいと思うのですが、どう組んだらいいでしょうか。

381 名前:これ参考に [2007/10/26(金) 17:37:47 ]
#include <stdio.h>
#include <time.h>
#include <string.h>
int N;
void serch(char* x,char* str,int* adr){
char t[256];int n,M,k,su=0;
for(M=0;;M++)if(str[M]=='\0')break;
for(n=0;n<256;n++)t[n]=M;
for(n=1;n<=M;n++){k=(unsigned char)str[M-n];if(t[k]==M)t[k]=n;}
n=0;while(1){
for(k=0;k<M;k++)if(str[k]!=x[n+k]) break;
if(k==M){adr[su]=n;su++;n+=M;}
else {k=(unsigned char)x[n+M];n+=t[k];}
if(n+M>=N){adr[su]=-1;return;}}}

main(){
N=18000000;char *x=new char[N];N=0;
char buf[120],k,n;
FILE *fp=fopen("2ch.txt","rb");
while(k=fread( buf,1,100,fp)){
for(n=0;n<k;n++)x[N+n]=buf[n];N+=k;}
fclose(fp);
printf("データロード完了!\n測定中です・・・\n");
int adr[30000];
char str[]="名無し";
serch(x,str,adr);
}

382 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 18:07:20 ]
>>381
変数の使い方、変数の名前が気持ち悪い

>>380
malloc,realloc使うべし

383 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 18:08:40 ]
あ、いや、バイナリならftellとfseekでサイズが分かるから、
reallocはいらないやも

384 名前:デフォルトの名無しさん [2007/10/26(金) 18:24:22 ]
>>381さん
ありがとうございます

>>382さん
mallocを使った場合どのように組めばいいでしょうか?

385 名前:デフォルトの名無しさん [2007/10/26(金) 18:35:14 ]
一番簡単な方法おしえてやる

386 名前:デフォルトの名無しさん [2007/10/26(金) 18:36:04 ]
>>375
ありがとう。
解凍ソフト変えたらできた。

387 名前:デフォルトの名無しさん [2007/10/26(金) 18:53:06 ]
#include <iostream>
#include <string>
#include <fstream>
using namespace std;

int main()
{
fstream fp("test.txt");
string str,buf;
do{
fp >> buf;
str+=buf;
}while((!fp.eof()));
int n=str.find("会議");
cout << n;
}

388 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 18:53:49 ]
>>381
だからその入力ロジックを何とかしろって

389 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 19:06:04 ]
>>384
適当に書いた例だけど

FILE *fp;
char *data;
... //省略
data = (char*)malloc(sizeof(char) * 128); /とりあえずchar128個分確保
if(data==NULL) return 1; //エラー処理
int i=0,size=128;
while((data[i] = getchar()) != EOF){
if(++i >= size){
char *tmp;
tmp = realloc(data,sizeof(char) * (size + 50)); //50ずつ拡張
if(tmp == NULL){
/* reallocは元の領域を解放するが、失敗時は解放せずにNULLを返す
そのため、失敗時に解放できるように、別変数で一度戻り値を受けてから、エラーチェックする */
free(data); //mallocやreallocで確保した領域は必ず解放する
return 1;
} else {
data = tmp;
size += 50;
}
}
}
free(data) //必ず解放



390 名前:デフォルトの名無しさん [2007/10/26(金) 20:26:58 ]
#include<stdio.h>

int A;
int B;
void X(int a[],int b[]){
printf("%d",a);
printf("%d",b);
}

void main(void){

//省略

X("A","B");

質問させてください
変数A Bを引数使って表示させたいんですけど、コマンドプロンプト?で実行させると警告がでてちゃんと表示されません。
どうすればいいでしょうか?

説明不足ですみませんがよろしくお願いします

391 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 20:29:39 ]
関数の引数としてポインタを渡して、そのポインタの変数に値をいれているのですが、
関数を呼び出す時によって、値をいれる必要が無いときがあります。
不要な値のために変数を宣言したくないのですが、変数を宣言しないでいい方法などはありませんか?

hoge( &x, &y, &height, &width);
と呼び出すのですが、&heightと&widthの結果を使わないときもあるので、
int x, y; だけ宣言して、heightとwidthは変数宣言したくないと思っています。

392 名前:デフォルトの名無しさん [2007/10/26(金) 20:30:26 ]
型がヘンすぎる 勉強不足

393 名前:デフォルトの名無しさん [2007/10/26(金) 20:31:42 ]
>>391
C++は入れない場合も同じ名前に出来る 2つ書けばいい

394 名前:デフォルトの名無しさん [2007/10/26(金) 20:33:40 ]
int hoge( a, b, c, d);を定義して
たとえばcとdを使わないなら、hoge( a, b) { return hoge( a, b , 0 , 0);}

395 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 20:34:45 ]
>>391
NULL を使えばいいと思うよ

>>393
ここはC言語のみ
C++なら誘導してからにしてください

396 名前:391 mailto:sage [2007/10/26(金) 20:39:55 ]
>>393
すみません、C言語です。

>>394
すみません。 私が関数ではないため動作が変えれないのと、不必要な値は6この引数のうち、
1, 2, 5が不要になったりする場合もあります。

>>395
すみません。
NULLを使うと言うのは、どのようにすればいいのでしょうか?
型を、castするという意味でしょうか?

397 名前:391 mailto:sage [2007/10/26(金) 20:48:00 ]
連続投稿失礼します。
hoge( &x, &y, NULL, NULL);
とすれば、コンパイルは通ったのですが、これは正しいのでしょうか?

簡単に動作を説明して頂けるとありがたいです。

398 名前:デフォルトの名無しさん [2007/10/26(金) 20:50:47 ]
>>397
動作はNULLで通るように自分で書かなければ行けない

399 名前:391 mailto:sage [2007/10/26(金) 21:26:43 ]
>>398
> 自分で書かなければいけない
と言うのは、関数をそのように修正すると言うことでしょうか?
関数は自分で作ったもので修正はできないと思います。



400 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 21:27:56 ]
>>399
NULL の指す先を読み書きしないようにするだけ

401 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 22:00:33 ]
>>399
hoge()の仕様がわからないと、引数でNULLを渡していいかどうかは判断できない。

402 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 22:44:08 ]
heightとwidthは>>391が使わないというだけでhogeは内部で値を設定しようとするからNGだと予測する俺エスパー

403 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 22:51:54 ]
まともな関数ならチェックしてるだろうけど・・・

404 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 00:01:40 ]
昔はチェックしてたけど不定値渡されて以来チェックするのをやめた

405 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 00:10:28 ]
>>404
あなたが hoge() か

406 名前:デフォルトの名無しさん [2007/10/27(土) 00:15:31 ]
#include <stdio.h>

int f(int &x){
if(&x==NULL)
return -1;
return x+10;}


int main(){
int x=0;
printf("%d\n",f(x));}

407 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 00:23:05 ]
>>406
それじゃポインタ渡した意味な(ry

408 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 00:29:32 ]
-1がreturnされることってある?

てか参照渡しってCで使えるの?

409 名前:デフォルトの名無しさん [2007/10/27(土) 00:38:22 ]
#include <stdio.h>

int f(int *x){
if(x==NULL)
return -1;
return *x+10;}


int main(){
int x=0;
printf("%d\n",f(NULL));}



410 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 00:42:57 ]
それがどうしたと言わざるをえない

411 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 00:45:11 ]
assert(p != NULL); で十分。

412 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 00:50:42 ]
assertと引数チェックは違うんだぜ・・・

413 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 01:30:01 ]
引数チェックが一番の使いどころだろ > assert()

414 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 01:34:02 ]
>>413
へぇ、永遠のデバッグビルドか

415 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 09:58:07 ]
>>414
sunも引数チェックにassert使えって言ってるよ。

416 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 10:40:38 ]
それは引数を渡す方も一緒に開発してる時だろ
内部的なエラーでも無い限りNULLになる事はありえない前提

417 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 11:38:55 ]
自分で作ってるライブラリじゃなくても、仕様にNULLを渡した時の動作が書いてなかったら、
NULLを渡すなんてありえない。

418 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 16:10:15 ]
引数チェックはやって当然。

419 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 16:15:39 ]
両方書いておけばおk



420 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 16:20:57 ]
ポインタで渡される引数のチェックって
NULL比較?

421 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 17:39:12 ]
mallocとかポインタがわけわかりません。

図とかでイメージしやすく解説してください


422 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 17:44:10 ]
>>391
カリー化

423 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 17:45:58 ]
>>421
本読め

424 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 17:46:25 ]
mallocって
char *str;

/* 文字列のためのメモリを確保 */
str = (char *)malloc(100);

こんな感じに書いてるけど

char str[100]

ってやった方が楽じゃん。なんでmallocなんて使うの?

425 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 17:49:17 ]
>>391
型が分からなかったので適当に決めた
int hoge_wrap(int *x, int *y, int *width, int *height){
int dummy=0;
if(x==NULL) x=&dummy;
if(y==NULL) y=&dummy;
if(width==NULL) width=&dummy;
if(height==NULL) height=&dummy;
return hoge(x, y, width, height);
}

426 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 17:50:10 ]
>>424
必要ないなら無理して使わなくても良い物です

427 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 17:52:55 ]
>>426
無理して使えるようになるためにおせーてよ
何か新天地が開けるかもしれないじゃん


というか教えてくださいお願いしますガンダム見ませんから

428 名前:デフォルトの名無しさん [2007/10/27(土) 17:56:59 ]
newやvectorつかえば十分 性能も変わらない

429 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 17:58:13 ]
char型で考えるから分かりにくいことになる。



430 名前:デフォルトの名無しさん [2007/10/27(土) 18:00:08 ]
char だと領域確保に制限がある new mallocは巨大なのが出来る

431 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 18:00:14 ]
newやvectorがわからないっす






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

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

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