C言語なら俺に聞け(入門編)Part 71
レス数が1000を超えています。これ以上書き込みはできません。
★前スレ
C言語なら俺に聞け(入門編)Part 70
http://hibari.2ch.net/test/read.cgi/tech/1285490211/
★過去スレ
http://makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000
★教えて欲しいのではなく宿題を丸投げしたいだけなら
↓宿題スレ↓へ行ってください。
C/C++の宿題片付けます 140代目
http://hibari.2ch.net/test/read.cgi/tech/1284632294/
★C++言語については避けてください。C++対応明記スレへどうぞ
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
# 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること
# サイズが大きい場合は宿題スレのアップローダ等を利用してください
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
0002デフォルトの名無しさん
2010/10/10(日) 22:41:49_ ,ノ ,ヘ、、
/´ ノ `ヽ、
/ / ヽ
i′ ,/ ',
{ { }
', `、 ,!
___ヽ ` 丿__,,
, ゝ `ヽ、 /´ く _
<-‐''´  ̄ ̄`,ゝ、、___,,, <´ ̄ ̄` ー->
` ー''´Z_ノ ヽ、_ヾ ー ´
C H I N E S E R E S T A U R A N T
__ __ __ __ __ __ __
`i | | i'l_i'l_i' i''´ __`ヽ-ッ _コ l____ i´__`ー-ッ _,,.、
,! ,! .l l _,,,_ └'´__ ``´ レ┐ ┌─┐ ,!'´ ``´ /,r''´
/ 丿 '、'、 l´ __`ヽ-ッi''´__`ヽ-ッ .l l ノ / / /
/ / ヽ ヾ´ ``'´└'´,,_``'´ l └ ' ,/ ___,,ノ /
_,,.r'' / \ `> r'"´ ``ヽS.) l 「´ 「´ _ノ
‘''' ´ `′ └ ''´ ̄``‐-‐'' └ ┘ └‐ '' ´
0003デフォルトの名無しさん
2010/10/10(日) 22:43:48/´ ̄`ヽ /: : : \_____/: : : : ヽ、
,. -‐┴─‐- <^ヽ、: : : : : : : : : : : : : : : : : : : : : : }
/: : : : : : : : : : : : : :`.ヽl____: : : : : : : : : : : : : : : : : : /
,. -──「`: : : : : : : : : :ヽ: : : : : : : : :\ `ヽ ̄ ̄ ̄ フ: : : : :/
/: :.,.-ァ: : : |: : : : : : : : : :\: : : : :: : : :ヽ \ /: : : :/
 ̄ ̄/: : : : ヽ: : : . . . . . . . . . . .、 \=--: : : :.i / /: : : : :/
/: : ∧: \: : : : : : : : : : ヽ: :\: : : 〃}/ /: : : : :/ 、
. /: : / . : : :! ヽ: : l\_\/: : : : :\: ヽ彡: : | /: : : : :/ |\
/: : ィ: : : : :.i: : | \!___/ ヽ:: : : : : : :\|:.:.:.:/:! ,': : : : / |: : \
/ / !: : : : :.ト‐|- ヽ \: : : : : l::::__:' :/ i: : : : :{ |: : : :.ヽ
l/ |: : :!: : .l: :| \: : : l´r. Y {: : : : :丶_______.ノ: : : : : :}
l: : :l: : :ト、| 、___,ィ ヽ: :| ゝ ノ '.: : : : : : : : : : : : : : : : : : : : : : /
|: : :ト、: |: :ヽ ___,彡 ´ ̄´ ヽl-‐' \: : : : : : : : : : : : : : : : : : イ
!: :从ヽ!ヽ.ハ=≠' , ///// ///u /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
V ヽ| }/// r‐'⌒ヽ イ〉、
ヽ、______ー‐‐' ィ´ /:/:7rt‐---、 こ、これは>>1乙じゃなくて
ィ幵ノ ./:/:./:.! !: : : : :!`ヽ ポニーテールなんだから
r‐'T¨「 |: | !:.∨:/:./: :| |: : : : .l: : : :\ 変な勘違いしないでよね!
/: : .|: :| !:.!ィ¨¨ヾ、:.:/ !: : : : l: : : : : :.\
0004デフォルトの名無しさん
2010/10/10(日) 22:46:40/´  ̄ ̄ ̄ ̄`ー 、 / /´ ,-‐' Y´ ヽ
/ ヽ / ',
/ i
,' / |
! イ |
| ! │ !
! ヽ │ |
| │ │ !
! │ ,.- 、 │ |
! │ ,... ! r‐、` │ │
| │ /r-、ヽ ゞ‐' j │ ! |
', │ !::ゞィ〃 ゛=" │ |
! │ `ー' │ !
| │ │ !
! │, │ i
| │ ,' ',
| │ │ |
0005デフォルトの名無しさん
2010/10/10(日) 23:15:520006デフォルトの名無しさん
2010/10/11(月) 06:35:53HOGESTRUCT hs = {sizeof hs};
って規格的には大丈夫なんでしょうか?
リテラルパース時にはhsが解決されてるのか、仕様書みてもよくわかりませんでした。
0007デフォルトの名無しさん
2010/10/11(月) 06:52:13というか何が不安なんだ?
0008デフォルトの名無しさん
2010/10/11(月) 08:15:31char *p = (char *)&p;
でもいいんですが、宣言の初期化で宣言元(?)をリテラルに含めていいのか、って話です。
例えばbcc32では下記はエラーになります。gccやtccではOKです。
char *p[] = { (char *)&p };
動作がどーのこーのではなく、規格ではどう定義されてるのか調べてます。
0009デフォルトの名無しさん
2010/10/11(月) 08:42:28他のコンパイラではOKなので、とりあえず宣言の初期化子に代入先のオブジェクトを含めてよい、
ってことにしておきます。仕様上はよくわかりません。
ちなみに仕様はISO/IEC 9899 の6.7.8を参照していました。
/* オマケ:bcc32のおかしな挙動 */
char g;
int main(void)
{
char q;
char *p1[] = {&g}; /* OK */
char *p2[] = {&q}; /* ERROR:E2063 */
return 0;
}
0010デフォルトの名無しさん
2010/10/11(月) 08:59:14gのアドレスはリンク時に解決するから定数扱い。
qのアドレスはローカルだから可変値扱い。
bccはc99に対応していないから可変値で初期化できない。
gccやicc、Sun-OSのccはc99をある程度解釈する。
何の問題もない。
0011デフォルトの名無しさん
2010/10/11(月) 10:00:17VC6.0でエラーにならないなと思ったら/W4で規格外だというエラーがでました。
解決しました、ありがとうございます。
0012デフォルトの名無しさん
2010/10/11(月) 12:18:16↓定数でないものが使える宣言と使えない宣言がある
main()
{
int a = printf(0); /* OK */
int b[] = { printf(0) }; /* NG */
}
>>6 や >>8 の論点は sizeof hs の時点で hs が何のことになっているのか、
&p の時点で p が何のことになっているのかであって、
sizeof や & の結果が定数かどうかではない
0013デフォルトの名無しさん
2010/10/11(月) 13:33:01ループにしたがって
n+1,n+2,n+3,n+4,n+l次元みたいな
0014デフォルトの名無しさん
2010/10/11(月) 14:20:41別に確保はできるよ。
ただし、Cである以上は、確保した領域をどう使うかはプログラマの責任だが
0015デフォルトの名無しさん
2010/10/11(月) 14:56:55それです、本当に知りたかったことはそれなんですが、
どう見ても仕様書には書いてないように思います。
sizeofに戻ると、初期化リテラルのブロック内で自身の最終情報を得るのは不可能です。
変数が配列でないなどの条件付です。以下を考えてみれば分かります。
int a[] = { sizof a, sizeof a };
これはワンパス的なやりかたで実装されてると解決できません(宣言と初期化を完全に分けれません)。
VC6はゼロ初期化で押し通します。
現実のコンパイラでこの辺の挙動は「未定義」といっていい感じなのは分かりました。
だけど配列でない場合は上手くいく、その歯がゆさ。
0016デフォルトの名無しさん
2010/10/11(月) 16:38:56構造体の場合は中身はこれこれって定義があるんだから量が判って当然だし。
0017デフォルトの名無しさん
2010/10/11(月) 17:11:15決め付けはよくないですよ。
例えばtccでは正しく初期化されます。
0018デフォルトの名無しさん
2010/10/11(月) 18:22:53アホか
0019デフォルトの名無しさん
2010/10/11(月) 19:45:33お騒がせしました。
0020デフォルトの名無しさん
2010/10/11(月) 20:05:01printfで"●"をX回表示させるにはどうすればいいですかね?
0021デフォルトの名無しさん
2010/10/11(月) 20:06:53をX個書く
0022デフォルトの名無しさん
2010/10/11(月) 20:09:36なるほど、ありがとうございました
0023デフォルトの名無しさん
2010/10/11(月) 22:14:48いえいえ
0024デフォルトの名無しさん
2010/10/11(月) 23:26:14俺にもお礼いえよ
0025デフォルトの名無しさん
2010/10/11(月) 23:29:05ありがとうございました
0026デフォルトの名無しさん
2010/10/11(月) 23:29:54どういたしまして
0027デフォルトの名無しさん
2010/10/11(月) 23:40:570028デフォルトの名無しさん
2010/10/12(火) 07:02:010029デフォルトの名無しさん
2010/10/12(火) 11:13:550030デフォルトの名無しさん
2010/10/12(火) 17:13:44int a;
int *p_a;
a= 100; ←ここで定義するとエラーとなりました。
p_a = &a;
return 0;
}
どうしてなんでしょう?
0031デフォルトの名無しさん
2010/10/12(火) 17:14:590032デフォルトの名無しさん
2010/10/12(火) 17:22:24半角に直してもダメみたいです。
0033デフォルトの名無しさん
2010/10/12(火) 17:26:060034デフォルトの名無しさん
2010/10/12(火) 17:43:08ここでは宣言できないと言われました。
a=100;を削除したところ通りました。 どうしてでしょうか?
0035デフォルトの名無しさん
2010/10/12(火) 17:48:58codepadに問題のソースを貼り付けたまえ。
0036デフォルトの名無しさん
2010/10/12(火) 17:52:46int a;
a = 100;
int *p_a;
ってなってるんだろ
0037デフォルトの名無しさん
2010/10/12(火) 17:55:120038デフォルトの名無しさん
2010/10/12(火) 17:55:29適当な翻訳しなくていいからエラーコード全部出せって
0039デフォルトの名無しさん
2010/10/12(火) 17:57:530040デフォルトの名無しさん
2010/10/12(火) 18:00:05構造体を引数にして構造体内の配列をコピー渡ししたいのですが
構造体定義でint a[9]と長さが指定されているものならコピーされましたが
構造体定義でint *aとし、使うときにmallocした配列だとコピーされないように感じます。
可変長配列の場合はできないのでしょうか?
0041デフォルトの名無しさん
2010/10/12(火) 18:01:070042デフォルトの名無しさん
2010/10/12(火) 18:03:20004340
2010/10/12(火) 18:07:43aを配列として扱ってるのはおまえの勝手だろ ってことですか。
では関数の引数に可変長の配列をコピーで渡したい場合はどうしたらいいのでしょうか?
0044デフォルトの名無しさん
2010/10/12(火) 18:07:530045デフォルトの名無しさん
2010/10/12(火) 18:10:190046デフォルトの名無しさん
2010/10/12(火) 18:12:260047デフォルトの名無しさん
2010/10/12(火) 18:29:310048デフォルトの名無しさん
2010/10/12(火) 18:38:37できない
0049デフォルトの名無しさん
2010/10/12(火) 18:40:01コピーされるのは *a でなく a
0050デフォルトの名無しさん
2010/10/12(火) 19:00:35printf("%d万",100);の場合、%dに右側の100という文字列を
代入するという考え方で合ってるでしょうか?
0051デフォルトの名無しさん
2010/10/12(火) 19:03:500052デフォルトの名無しさん
2010/10/12(火) 19:12:52そんなこと知らなくてもCを使うのに困ることはないよ。
その上でどうしても知りたいなら、使ってるコンパイラのソースを入手しなさい。
規格で決まってるのは「どういう結果になるか」だけ。
「どう実現するか」はコンパイラ次第。
0053デフォルトの名無しさん
2010/10/12(火) 19:13:560054デフォルトの名無しさん
2010/10/12(火) 19:22:29"R:\a"の部分を"b"とすると正常に処理されました。解決策はありますか?
#include <stdio.h>
int main(void)
{
char *oldname = "a";
char *newname = "R:\a";
if( rename( oldname, newname ) == 0 ){
printf( "Rename successflly from %s to %s", oldname, newname );
}
else{
printf( "Rename failed" );
}
return 0;
}
0055デフォルトの名無しさん
2010/10/12(火) 19:36:340056デフォルトの名無しさん
2010/10/12(火) 20:01:41ありがとうございました。
リネーム先が"R:\\a"ではまだエラーが出てしまうのですが、試しに"C:\\b"とするとリネームしてくれるので構文に間違いないと思います。
色々粘ってみます。
0057デフォルトの名無しさん
2010/10/12(火) 20:07:05R:\で実行してないか?
R:\aをR:\aにリネームはできないよ。
0058デフォルトの名無しさん
2010/10/12(火) 20:15:03そういうのはリネームじゃなくて移動っていうんだ
0059デフォルトの名無しさん
2010/10/12(火) 20:17:21ありがとうございます。
C:\に実行ファイルとディレクトリ"a"を置いてやってます。R:\はramdiskです。
0060デフォルトの名無しさん
2010/10/12(火) 20:21:270061デフォルトの名無しさん
2010/10/12(火) 20:24:43ありゃりゃ、方法からマズかったですか。
調べなおして書き直すことにします。ありがとうございました。
0063デフォルトの名無しさん
2010/10/12(火) 23:03:49pathの指定方法が間違っていないかい?
ドライブルートは/cygdriveの下にマウントされる。
char *newname = "R:\a";
ではなくて
char *newname = "/cygdrive/r/a";
だと思うよ。
試しにls /cygdriveに何がマウントされているか、確かめてみて。
006454
2010/10/13(水) 00:04:49>>62
いえいえ、>>54みたいな稚拙でイミフな質問を適切に解釈してくださるエスパーの方々には頭が上がりません
>>63
早速以下のように改造のうえコンパイルしてC:\で走らせてみました。
#include <stdio.h>
int main(void)
{
char *oldname = "a";
char *newname = "/cygdrive/r/a";
if( rename( oldname, newname ) == 0 ){
printf( "Rename successfly from %s to %s", oldname, newname );
}
else{
printf( "Rename failed : %s",newname );
}
return 0;
}
するとDOSプロンプト上で次のように結果が得られました。
Rename failed : /cygdrive/r/a
この時プログラムはWindowsディスク上に/cygdrive/r/aを作ろうとしてるんでしょうか?
ちなみにnewnameを"R:\\a"とすると次のようになりました。
Rename failed : r:\a
0065デフォルトの名無しさん
2010/10/13(水) 00:12:10006663
2010/10/13(水) 01:01:06>するとDOSプロンプト上で次のように結果が得られました。
cygwin bash shell上で実行しないとだめだよ。
このコードで期待通りに動いているよ。
#include <stdio.h>
int main(void)
{
char *oldname = "input.txt";
char *newname = "/cygdrive/c/hoge.txt";
if( rename( oldname, newname ) == 0 ){
printf( "Rename successflly from %s to %s\n", oldname, newname );
} else {
printf( "Rename failed\n" );
}
return 0;
}
実行結果
$ ./main
Rename successflly from input.txt to /cygdrive/c/hoge.txt
0067デフォルトの名無しさん
2010/10/13(水) 01:48:10cygwinはどっちも受け付ける
>>64
R:\もC:\もWindowsの中だろ
だからさあファイルシステムを跨いだrename()は無理だっつーの
0068デフォルトの名無しさん
2010/10/13(水) 02:05:26errnoなんてライブラリがあるんですね。勉強になります。
>>66
cygwinのbash上でそのプログラムを実行してみたのですが、同じ結果でした。errnoは2でnot foundみたいでした。私の環境か方法が悪いのだと思います。
その前に元プログラムの*newname = "r:\\a"で試してみたらerrno=13 (permission denied)が出力されました。
というかそのプログラムさえ動かないのは何かマズいミスを犯してる気がするので、明日落ち着いてまた走らせてみます。
>>67
やや、やっぱり私の試してる通りの方法は無理ですか。なんとかAPIを利用しないやり方をと思ったのですが・・・
WindowsAPIの部分をコンパイルするには該当するヘッダファイルを導入すればいいのかな?
色々実験しながらのレスとはいえ、アドバイスを下さる方々に不躾な部分があったかもしれません。お詫び申し上げます。
重ね重ねありがとうございます。
0069デフォルトの名無しさん
2010/10/13(水) 02:12:310070デフォルトの名無しさん
2010/10/13(水) 05:32:170071デフォルトの名無しさん
2010/10/13(水) 06:08:410072デフォルトの名無しさん
2010/10/13(水) 10:02:43コロンつきのパスを解釈するのはシェルがコマンドラインをパースするときだろ。
アプリ内からライブラリ呼ぶときまでは受け付けてくれないんじゃないかと思うが。
つーか、cygwinスレに行けばいいよ。
0073デフォルトの名無しさん
2010/10/13(水) 10:55:44{
char res67[256];
printf(">>72 つーか、cygwinスレに行けばいいよ。\n");
gets(res67);
if (res67 ==">>67:cygwinスレ行かない\n")
{
printf("俺:>>72\n釣りだろ\n");
}
}
0074デフォルトの名無しさん
2010/10/13(水) 11:07:200075デフォルトの名無しさん
2010/10/13(水) 17:21:540076デフォルトの名無しさん
2010/10/13(水) 17:23:01お前にそれを言う資格はない
0077デフォルトの名無しさん
2010/10/13(水) 17:26:370078デフォルトの名無しさん
2010/10/13(水) 17:32:41一度痛い目を見ておくべき
0079デフォルトの名無しさん
2010/10/13(水) 18:03:350080デフォルトの名無しさん
2010/10/13(水) 18:09:090081デフォルトの名無しさん
2010/10/13(水) 18:09:560082デフォルトの名無しさん
2010/10/13(水) 18:11:310083デフォルトの名無しさん
2010/10/13(水) 18:14:000084デフォルトの名無しさん
2010/10/13(水) 18:25:060085デフォルトの名無しさん
2010/10/13(水) 18:34:25どれも正しくない場合は訂正してください。
1. static char *str = (char *)malloc( sizeof(char) * 10 );
2. static char *str = (static char *)malloc( sizeof(char) * 10 );
0086デフォルトの名無しさん
2010/10/13(水) 18:34:560087デフォルトの名無しさん
2010/10/13(水) 18:38:02ごめん。個数は変数で与えられいて動的に確保しなければならない場合は?
0088デフォルトの名無しさん
2010/10/13(水) 18:41:32if (!str) str = malloc(個数);
0089デフォルトの名無しさん
2010/10/13(水) 18:42:36>>85と言ってることが矛盾してる=釣り
0090デフォルトの名無しさん
2010/10/13(水) 18:42:58WindowsもLinuxもCで書かれているのに古き良きもないもんだ
0091デフォルトの名無しさん
2010/10/13(水) 18:44:00初期化してないのに参照できるんですか?
0092デフォルトの名無しさん
2010/10/13(水) 18:46:12C++と勘違いしてね?
0093デフォルトの名無しさん
2010/10/13(水) 18:49:09WindowsはC++だが?
0094デフォルトの名無しさん
2010/10/13(水) 18:50:29バーカCだよ
MSDN良く見てみろ
俺も最初はC++だと勘違いしていた口だ
0095デフォルトの名無しさん
2010/10/13(水) 18:52:360096デフォルトの名無しさん
2010/10/13(水) 18:53:27そうですか。
ようは何がしたいかというと呼び出した関数内で静的領域(配列)を動的に確保して
それに値代入して、そのアドレスを返したいんですけど、
こういう場合はどうやって領域確保すりゃいいんですか?
0097デフォルトの名無しさん
2010/10/13(水) 18:54:49VisualBasicかC#を使う
0098デフォルトの名無しさん
2010/10/13(水) 18:55:33Cじゃできんってこと?
0099デフォルトの名無しさん
2010/10/13(水) 18:55:51あたらしい仕様で俺様言語を策定する
0100デフォルトの名無しさん
2010/10/13(水) 18:57:51どうして静的領域じゃないとだめなん?
ヒープ領域ではだめな理由があるの?
0101デフォルトの名無しさん
2010/10/13(水) 18:59:15エンジンに翼を付けて飛ばしたいのか?
翼にエンジンを付けて飛ばしたいのか?
0102デフォルトの名無しさん
2010/10/13(水) 19:01:03ローカル変数として宣言したものを返したいからです。
0103デフォルトの名無しさん
2010/10/13(水) 19:02:46おかしくね
0104デフォルトの名無しさん
2010/10/13(水) 19:02:470105デフォルトの名無しさん
2010/10/13(水) 19:04:01本当のローカル変数は関数を出たら消えてしまうものだよ
staticなローカル変数は特別だと思え
0106デフォルトの名無しさん
2010/10/13(水) 19:04:270107デフォルトの名無しさん
2010/10/13(水) 19:04:54飛べばどっちでもいいよ
0108デフォルトの名無しさん
2010/10/13(水) 19:07:300109デフォルトの名無しさん
2010/10/13(水) 19:08:43そうですよね。
だから消えてしまわないようにして、
ポインタ引き渡しして呼び出した側で使いたいわけです。
0110デフォルトの名無しさん
2010/10/13(水) 19:09:17ケーキを切るときはハサミではなくケーキナイフを使う。
紙を切るときは包丁ではなくハサミやカッターを使う。
0111デフォルトの名無しさん
2010/10/13(水) 19:10:370112デフォルトの名無しさん
2010/10/13(水) 19:11:41ヒープ領域で確保したってポインタさえ失わなければ、そしてfree()さえしなければ
消えないじゃん?
0113デフォルトの名無しさん
2010/10/13(水) 19:11:450114デフォルトの名無しさん
2010/10/13(水) 19:12:310115デフォルトの名無しさん
2010/10/13(水) 19:13:00int a;
foo(&a);
をポインタ変数に拡張するのと違うの?
hoge(int** a)
{
*a = malloc()... /* 動的確保 */
}
int *a;
hoge(&a);
0116デフォルトの名無しさん
2010/10/13(水) 19:13:490117デフォルトの名無しさん
2010/10/13(水) 19:15:180118デフォルトの名無しさん
2010/10/13(水) 19:17:170119デフォルトの名無しさん
2010/10/13(水) 19:18:34だいぶ書き進めてるんで無理です。
グローバル変数しかないですか?
もし、一文字返すだけなら
void funk(char *moji){
static char a;
a='A';
moji=&a;
return;
}
でいいと思うんですけど、
今やろうとしてるのは構造体の配列をかえすものです。
だだし、その長さが関数内で決まります。
0120デフォルトの名無しさん
2010/10/13(水) 19:20:170121デフォルトの名無しさん
2010/10/13(水) 19:20:230122デフォルトの名無しさん
2010/10/13(水) 19:22:450123デフォルトの名無しさん
2010/10/13(水) 19:23:22さっきからうるさいな
ポインタでひどい目に遭ったからと言って八つ当たりするな
0124デフォルトの名無しさん
2010/10/13(水) 19:25:18int num;
struct hoge {
} elem[];
};
この末尾が大きさ不定配列の構造体って C89 はセーフだっけ?
0125デフォルトの名無しさん
2010/10/13(水) 19:26:16ダメ
elem[1]; とか最低でも1の長さが必要
0126デフォルトの名無しさん
2010/10/13(水) 19:26:42皆言ってるようにmallocでヒープ確保すりゃいい話。
0127デフォルトの名無しさん
2010/10/13(水) 19:26:54} *elem;
0129デフォルトの名無しさん
2010/10/13(水) 19:28:04mallocでいいよ。
0130デフォルトの名無しさん
2010/10/13(水) 19:29:58そんなに構造体配列の長さを可変したいならCをやめてC++のstd::vectorを使えばいいだろ
Cでもrealloc()が使えるけどな
0131デフォルトの名無しさん
2010/10/13(水) 19:30:230132デフォルトの名無しさん
2010/10/13(水) 19:31:580133デフォルトの名無しさん
2010/10/13(水) 19:32:03>違います
どこが違うか詳しく
0134デフォルトの名無しさん
2010/10/13(水) 19:35:280135デフォルトの名無しさん
2010/10/13(水) 19:36:23呼び出し側で構造体ひとつ宣言して、そのポインタを引数として与えて、
呼び出された関数内でrealloc()を使って構造体配列の長さを変更すればいいということですね?
それで行ってみようかと思います。
0136124
2010/10/13(水) 19:37:06Win32 の BITMAPHEADER だったかがこんな構造だったな
と記憶してたが、正確に把握してなかった
struct foo *p = (struct foo *)malloc(sizeof(struct foo) + sizoof(struct hoge) * num);
p->num = num;
p->elem[0] 〜 p->elem[num-1] までは使えるってやつ
0137デフォルトの名無しさん
2010/10/13(水) 19:37:200138デフォルトの名無しさん
2010/10/13(水) 19:38:52構造体の連結リストではなく構造体の配列です
0139デフォルトの名無しさん
2010/10/13(水) 19:39:43最近は、見なくなったな
0140デフォルトの名無しさん
2010/10/13(水) 19:40:22へー そうなんですか。
ありがとうございます。
0141デフォルトの名無しさん
2010/10/13(水) 19:40:44あーバカバカバカ
基礎からやり直せ
今そんな状態でプログラムを進めると修復不能なバグを作り出すぞ絶対
0142デフォルトの名無しさん
2010/10/13(水) 19:42:310143デフォルトの名無しさん
2010/10/13(水) 19:46:02いやこいつは多分malloc()を全く理解していない
今度はメモリリークを起こすぞ
0144デフォルトの名無しさん
2010/10/13(水) 19:50:24関数のブロック内でローカル変数に対してmallocした場合
関数のブロックが閉じた時点で領域が解放されてしまうのでダメじゃないですか?
0145デフォルトの名無しさん
2010/10/13(水) 19:51:55いいえ
明示的にそのポインタを free() しない限り領域は生き残ります
0146デフォルトの名無しさん
2010/10/13(水) 19:53:040147デフォルトの名無しさん
2010/10/13(水) 19:54:43「ポインタを関数の返却値として返す」とはどういう事か理解した方がいい
0148デフォルトの名無しさん
2010/10/13(水) 19:56:01malloc()で確保した領域は、普通のローカル変数と扱いが違うわけですか?
0149デフォルトの名無しさん
2010/10/13(水) 19:56:150150デフォルトの名無しさん
2010/10/13(水) 19:58:20どう勘違いしてるように見えます?
0151デフォルトの名無しさん
2010/10/13(水) 19:59:46違う
つか、変数や領域とポインタが gdgd になってるな…
>>149 そう思う反面スマポで引っかかりそうな気もしないでもないw
0152デフォルトの名無しさん
2010/10/13(水) 20:02:53スマポはstd::auto_ptrは使用禁止にしてstd::tr1::shared_ptrかstd::tr1::shared_ptrのみ
使用可にするとか制限付けないとなw
多分COAPに引っ掛かってまた悩むw
0153デフォルトの名無しさん
2010/10/13(水) 20:04:12○std::tr1::unique_ptrのみ
俺も最初はstd::auto_ptrを入れてsortしたら中身がぶっ壊れて悩んだ
今じゃ代入そのものが不可になってるのが多いけどな
0154デフォルトの名無しさん
2010/10/13(水) 20:06:42俺がageてたのか
0155デフォルトの名無しさん
2010/10/13(水) 20:09:43mallocで確保した領域は、ヒープ内にある。
ローカル変数は、スタック上にある。
スタック上の領域は関数を抜けると無効になる。
関数を抜けても使いたい領域はスタック上に確保する。
だからmallocを使う。
0156デフォルトの名無しさん
2010/10/13(水) 20:12:250157デフォルトの名無しさん
2010/10/13(水) 20:15:24>関数を抜けても使いたい領域はスタック上に確保する。
ヒープ上じゃないんですか
とにかく、参考になりました。
0158デフォルトの名無しさん
2010/10/13(水) 20:16:49別物だって言うことは分かった
0159155
2010/10/13(水) 20:18:06ヒープだった。ごめんなさい。
× >関数を抜けても使いたい領域はスタック上に確保する。
○ >関数を抜けても使いたい領域はヒープ上に確保する。
0160デフォルトの名無しさん
2010/10/13(水) 20:24:10>配列を引数にすると参照渡し、構造体を引数にするとコピー渡しですよね。
Cに参照渡しはないよ。K&Rにもはっきり書いてある。
0161158
2010/10/13(水) 20:24:11いままで回答してくださった皆さんありがとう
0162デフォルトの名無しさん
2010/10/13(水) 20:50:13コテの意味がない
0163デフォルトの名無しさん
2010/10/13(水) 20:52:14俺は人に教える事はようできん
途中でムカッときてしまう
0164デフォルトの名無しさん
2010/10/13(水) 21:11:14同じ人間は2人といない。キミと同じ知識、経験を持った人間はいない。
言ってる意味がわかるな?
0165デフォルトの名無しさん
2010/10/13(水) 21:15:42ここはお前の日記じゃない。
0166デフォルトの名無しさん
2010/10/13(水) 21:16:20大学の時に教育原理を取って、中学校の数学の免状は持ってるけど
それとは別の問題みたいですね
0167デフォルトの名無しさん
2010/10/13(水) 21:17:460168デフォルトの名無しさん
2010/10/13(水) 21:19:03うるせーわいちいち
0169デフォルトの名無しさん
2010/10/13(水) 21:20:14アホかうるそれるすぼるんよすにんいっちゃだ
0170デフォルトの名無しさん
2010/10/13(水) 21:21:05意味不明
日本語でおk
0171デフォルトの名無しさん
2010/10/13(水) 21:46:420172デフォルトの名無しさん
2010/10/14(木) 06:46:410173デフォルトの名無しさん
2010/10/14(木) 07:40:40http://togetter.com/li/59043
綾瀬はるかのおっぱいはどの型で宣言すればいいですか?
0174デフォルトの名無しさん
2010/10/14(木) 07:43:27TwitterネタはTwitterでやれ。
0175デフォルトの名無しさん
2010/10/14(木) 14:25:00お尻を解放する。
0176デフォルトの名無しさん
2010/10/14(木) 15:33:220177デフォルトの名無しさん
2010/10/14(木) 16:17:530178デフォルトの名無しさん
2010/10/14(木) 16:19:12printf("| ● |\n");
printf("+----+\n");
0179デフォルトの名無しさん
2010/10/14(木) 16:25:390180デフォルトの名無しさん
2010/10/14(木) 16:32:350181デフォルトの名無しさん
2010/10/14(木) 16:47:36#include <math.h>
#define PGM_ID "P6"
#define W 400
#define H 300
int main(){
int x, y;
unsigned char pixel;
printf("%s\n", PGM_ID);
printf("%d %d\n",W,H);
printf("%d\n", 255 );
for(y=150; y>-150; y--){
for( x=-200; x<200; x++){
if(y<0.75*x+150 && y<-0.75*x+150 && y>-0.75*x-150 && y>0.75*x-150){
putchar(100);
putchar(192);
putchar(67);
}
else{
putchar(255);
putchar(255);
putchar(255);
}}}
return 0;
}
0182デフォルトの名無しさん
2010/10/14(木) 21:30:31白地に緑の菱形?
0183デフォルトの名無しさん
2010/10/15(金) 00:20:150184デフォルトの名無しさん
2010/10/15(金) 00:30:58* typ2.c - 標準入力の代わりに、起動時の
* コマンドラインの第一パラメータのファイルを処理
*/
#include <stdio.h>
main(int argc, char *argv[])
{
FILE *fp;
int c;
if (argc != 2){ /* コマンド名も含んだ個数 */
printf("parameter error\n");
exit(1);
}
if ((fp = fopen(argv{1], "r"))==NULL) {
printf("can't open %s\n", argv[1]);
exit(1);
}
while ((c = fgetc(fp)) != EOF)
fputc(c, stdout);
fclose(fp);
exit(0);
}
教えてください
上のプログラムはコマンドラインで指定したファイルを入力として画面に表示する
ものなんですけど
参考書通りにコンパイルしてもエラーが出てしまいます。
どこを直せばいいですか 参考書まんまのはずなんですが 構文エラーがでます
0185デフォルトの名無しさん
2010/10/15(金) 00:33:41fopen(argv[1], "r")
0186デフォルトの名無しさん
2010/10/15(金) 01:31:39argc とか fopen の返りが NULL とか。
0187デフォルトの名無しさん
2010/10/15(金) 06:22:59括弧が足らない
0188デフォルトの名無しさん
2010/10/15(金) 06:24:370189デフォルトの名無しさん
2010/10/15(金) 06:27:44お前は>>185も読めないバカなんだから、他人に何かを指摘できるとか考えるな
0190デフォルトの名無しさん
2010/10/15(金) 18:35:14int main(void)
{
char c = 'A';
char *p;
p= &c;
printf("%c\n",*p);
*p=*p+2;
printf("%c\n",*p);
return 0;
}
実行すると A C って出ますけど
「C」なんて一切出てきてないのに、なぜ A C って表示されるんですか?
まさかchar c = 'A' って宣言すると、
「その+2のアドレスにCもあるよ」って宣言してるのと同じ意味なんでしょうか?
ここまで読み返すと意味不ですが、回答お願いします
0191デフォルトの名無しさん
2010/10/15(金) 18:39:33これはc=0x41と同じ
*p=*p+2;
これは
c=c+2;と同じ。よってc=0x43と同じ
これはc='C';と同じ
0192デフォルトの名無しさん
2010/10/15(金) 18:40:090193デフォルトの名無しさん
2010/10/15(金) 18:42:15*p + 2 ← 「そのアドレスに書いてる値に +2 した値
0194デフォルトの名無しさん
2010/10/15(金) 18:44:550195デフォルトの名無しさん
2010/10/15(金) 18:46:58ポインタがわかってないみたいだな
0196デフォルトの名無しさん
2010/10/15(金) 19:01:34*p と書くと、p の指すアドレスに保存されてるデータ。
たとえば char c = 'A'; で、
変数 c の、メモリー中での場所が、たとえば 0x1234 なら、
char* p;
p = &c; で,変数 p に記録される数字も 0x1234 になる。
0x1234 の場所に、実際に記録されてるデータは 'A'
A は、数字に直すと65。 変数 c には(メモリ番地0x1234の場所には)65という数字が記録されている。
p と書くと 0x1234 という数字を参照することになるので、p+2 なら 0x1234 + 2 = 0x1236 となる。 これなら c の +2 先のアドレスと同じ数字。
一方、*p と書くと 変数c(メモリ番地0x1234の場所)に記録されている65という数字を参照することになるので、
*p+2 は 65 + 2 という意味なので、 67 という数字を指す。
printf の %c に 67 という数字を渡すと C と表示される。 (「67ならCと表示する」という決まりなので)
0x1234 + 2 の 0x1236 の場所に、自動的に C (数字の67)が記録されたりはしてないと思います。
0197デフォルトの名無しさん
2010/10/15(金) 19:33:470198デフォルトの名無しさん
2010/10/15(金) 19:34:59stdio.h
0199デフォルトの名無しさん
2010/10/15(金) 19:35:02Win32API
0200デフォルトの名無しさん
2010/10/15(金) 19:35:540201190
2010/10/15(金) 19:48:08わかりましたーすいませんー
0202デフォルトの名無しさん
2010/10/15(金) 19:51:120203デフォルトの名無しさん
2010/10/15(金) 19:56:41その説明だとchar以外になったときに
0x1236にならないってハマりそう
0204デフォルトの名無しさん
2010/10/15(金) 20:04:26a = 0; b = 4;
printf("a: %d\n", a);
printf("b: %d\n", b);
printf("a+1: %d\n", a+1);
printf("b+1: %d\n", b+1);
printf("a+b: %d\n", a+b);
これはどうしてなんですか?
0205デフォルトの名無しさん
2010/10/15(金) 20:05:120206デフォルトの名無しさん
2010/10/15(金) 20:06:340207デフォルトの名無しさん
2010/10/15(金) 20:07:180208デフォルトの名無しさん
2010/10/15(金) 20:12:51Turbo C 2.01
0209デフォルトの名無しさん
2010/10/15(金) 20:13:06Linux系ならgcc。WindowsならVisual Studioが基本だが
コマンドラインで使うなら、旧bcc(codegearのC++Compiler)も悪くはない
ICCとか一風変わったものに手を出すのは後回しでいい
0210デフォルトの名無しさん
2010/10/15(金) 20:16:23LCC-Win32
0211デフォルトの名無しさん
2010/10/15(金) 20:17:11ポインタの基礎を勉強してきなさい。
0212デフォルトの名無しさん
2010/10/15(金) 20:18:29回答ありがとうございます。
試してみます
0213デフォルトの名無しさん
2010/10/15(金) 20:19:28char *a; int *b;
a = 0; b = 4;
はコンパイルエラーになりそうな気がするんだが気のせいか?
0214デフォルトの名無しさん
2010/10/15(金) 20:20:50初心者には統合開発環境の付いた Turbo C++ 1.01 を薦めるべき。
いまどき IDE 無しでは初心者は受け入れられない。
0215デフォルトの名無しさん
2010/10/15(金) 20:21:17>printf("a+b: %d\n", a+b);
いやこっちだろ
0216デフォルトの名無しさん
2010/10/15(金) 20:22:04C言語ならNo
違反 では ない
0217デフォルトの名無しさん
2010/10/15(金) 20:24:22そこで何故MinGWを薦めない?
0218デフォルトの名無しさん
2010/10/15(金) 20:26:450219デフォルトの名無しさん
2010/10/15(金) 20:36:10セットアップ超簡単なんだけどな。BCCよりもね。
出来上がるバイナリもすげー小さいし基本gccだからc99ほぼ対応だし。
いいことだらけ。
0220デフォルトの名無しさん
2010/10/15(金) 20:39:17使っているが人に勧めるようなものではない
初心者には資料が多いものを勧めるべき
0221デフォルトの名無しさん
2010/10/15(金) 20:40:350222デフォルトの名無しさん
2010/10/15(金) 20:40:59ソースも入手できるし
0223デフォルトの名無しさん
2010/10/15(金) 20:46:45MinGWってgccでまともなWindowsアプリにしたいときか64bitにしたいときしか使わない。
今はどうか知らないけどcygwinからオプション一発でMinGWの32bitバイナリ作れたと思うし。
0224デフォルトの名無しさん
2010/10/15(金) 20:59:15Cygwinはそれこそ使い始めるまでが大変じゃないか?
MSYSもCygwinのコマンドも覚えなきゃならんし、配布時にdllも必要だし。
MinGWはgccをそのままWinに移植しただけだからシンプルだよ。
0225デフォルトの名無しさん
2010/10/15(金) 21:02:080226デフォルトの名無しさん
2010/10/15(金) 21:06:09VC++ ExpressとSDK付属などのコンパイラ単品を比較してコンパイラ単品に軍配をあげるようなもの
0227デフォルトの名無しさん
2010/10/15(金) 21:06:45を考慮するならシンプルなほうがいいじゃない。
0228デフォルトの名無しさん
2010/10/15(金) 21:11:47Visual Studio 2010 Express 日本語版
ttp://www.microsoft.com/japan/msdn/vstudio/express/
0229デフォルトの名無しさん
2010/10/15(金) 21:15:23まあいいやこの辺でやめとくよ。
0230デフォルトの名無しさん
2010/10/15(金) 21:18:550231デフォルトの名無しさん
2010/10/15(金) 21:55:03このライブラリを使っても環境依存しない独立したアプリは作れ
るでしょうか。コンパイラはVSかMINGWのGCCを考えています。
0232デフォルトの名無しさん
2010/10/15(金) 22:00:37何故それをそのライブラリの開発元に聞かないんだ。
0233デフォルトの名無しさん
2010/10/15(金) 22:01:440234デフォルトの名無しさん
2010/10/15(金) 22:04:05Linuxとx86/SPARCの組み合わせしかテストされてないっぽいが
http://www.cdc.informatik.tu-darmstadt.de/TI/LiDIA/
それに含まれているらしいGMPであれば
何とかなりそうな雰囲気だが、よく知らない
>GMP's main target platforms are Unix-type systems, such as GNU/Linux, Solaris,
>HP-UX, Mac OS X/Darwin, BSD, AIX, etc. It also is known to work on Windows
>in both 32-bit and 64-bit mode.
http://gmplib.org/
0235デフォルトの名無しさん
2010/10/15(金) 22:04:350236デフォルトの名無しさん
2010/10/15(金) 22:05:020237デフォルトの名無しさん
2010/10/15(金) 22:06:090238デフォルトの名無しさん
2010/10/15(金) 22:08:580239デフォルトの名無しさん
2010/10/15(金) 22:09:44ドイツ人なら余程のことがない限り拙い英語でも充分遣り取りできると思うが。
0240デフォルトの名無しさん
2010/10/15(金) 22:14:15エラーメッセージもよくわかりません。
日本語のサンプルコードでプログラムしてます。
0241デフォルトの名無しさん
2010/10/15(金) 22:17:500242デフォルトの名無しさん
2010/10/15(金) 22:19:25MINGWだとコンパイルに失敗します。
古いコンパイラでないと出来ないみたいです。
0243デフォルトの名無しさん
2010/10/15(金) 22:23:040244デフォルトの名無しさん
2010/10/15(金) 22:23:340245デフォルトの名無しさん
2010/10/15(金) 23:23:330246デフォルトの名無しさん
2010/10/16(土) 12:48:10気になって先に進めない
0247デフォルトの名無しさん
2010/10/16(土) 12:52:080248デフォルトの名無しさん
2010/10/16(土) 12:52:09○ if ((fp = fopen(argv[1], "r"))==NULL) {
0249デフォルトの名無しさん
2010/10/16(土) 14:26:500250デフォルトの名無しさん
2010/10/16(土) 14:28:020251デフォルトの名無しさん
2010/10/16(土) 14:43:220252デフォルトの名無しさん
2010/10/16(土) 14:51:23rand() のモジュロをとるのはよくないうんぬんかんぬん
http://www.kouno.jp/home/c_faq/c13.html#16
0253デフォルトの名無しさん
2010/10/16(土) 14:54:030254デフォルトの名無しさん
2010/10/16(土) 14:58:000255デフォルトの名無しさん
2010/10/16(土) 15:00:28RAND_MAXに近づけは近づくほど精度が悪くなる
よく考えれば分かるだろうに
0256デフォルトの名無しさん
2010/10/16(土) 15:09:450257デフォルトの名無しさん
2010/10/16(土) 15:11:05http://www.kouno.jp/home/c_faq/c13.html#16
>なぜな ら乱数発生器の多くで下位のビットは悲惨なほどランダムでない
一見ランダムに見えていても二つ組、三つ組み、4次元、5次元、と次数をあげていくと、わかったものではない。
0258デフォルトの名無しさん
2010/10/16(土) 15:15:280259デフォルトの名無しさん
2010/10/16(土) 15:20:560260デフォルトの名無しさん
2010/10/16(土) 15:23:420261デフォルトの名無しさん
2010/10/16(土) 15:24:210262デフォルトの名無しさん
2010/10/16(土) 15:44:15精度が低すぎて使い物にならないんですが。
0263デフォルトの名無しさん
2010/10/16(土) 15:45:570264デフォルトの名無しさん
2010/10/16(土) 15:46:050265デフォルトの名無しさん
2010/10/16(土) 15:52:570266デフォルトの名無しさん
2010/10/16(土) 16:50:39lsi-c ですか?
0267デフォルトの名無しさん
2010/10/16(土) 16:55:50精度が低すぎて使い物にならないんですが。
0268デフォルトの名無しさん
2010/10/16(土) 17:01:22デジタルシグナルプロセッサ環境マヂおすすめ
CHAR_BIT==32とか有効ビット!=ビット数とか味わえるよ
0269デフォルトの名無しさん
2010/10/16(土) 17:12:22CHAR_BIT は 8 だけど、4byte境界以外のアクセスは例外発生
ってコンパイラだった
0270デフォルトの名無しさん
2010/10/16(土) 17:14:260271デフォルトの名無しさん
2010/10/16(土) 17:21:490272デフォルトの名無しさん
2010/10/16(土) 17:24:260273デフォルトの名無しさん
2010/10/16(土) 17:26:55イミディエイトアドレス に 境界外の値が使えない
ってだけなので、ビットシフトとマスクで 値操作そのものはなんとかなるよ
あとはインラインアセンブラで SSEのSIMD的なレジスタ分配コードを経由させる
>>271
上: argv 直後 { からす括弧
下: argv 直後 [ カギ括弧
0274デフォルトの名無しさん
2010/10/16(土) 17:27:22× { 1 ]
○ [ 1 ]
0275デフォルトの名無しさん
2010/10/16(土) 17:27:39argvの次の1文字
0276デフォルトの名無しさん
2010/10/16(土) 17:28:16正解のほうをコピーしてみたら警告はでましたがエラーなく実行できました
どこが間違ってたか教えて〜
0277デフォルトの名無しさん
2010/10/16(土) 17:29:120278デフォルトの名無しさん
2010/10/16(土) 17:31:010279デフォルトの名無しさん
2010/10/16(土) 17:31:39結合自体はstrcpyとかstrcatでいいとわかったんですが
その時メモリを動的に設定するにはどうしたらいいんでしょうか良いサンプルコードが載ったサイトなど教えてください
0280デフォルトの名無しさん
2010/10/16(土) 17:31:450281デフォルトの名無しさん
2010/10/16(土) 17:36:420282デフォルトの名無しさん
2010/10/16(土) 17:43:420283デフォルトの名無しさん
2010/10/16(土) 17:44:48例えばNTL、GMP、LiDIAなどでJAVAみたいにBigIntegerのような
データ型が定義されて意識することなく塩山市などの計算が簡単に
出来るような処理系を探しています。
0284デフォルトの名無しさん
2010/10/16(土) 17:48:500285デフォルトの名無しさん
2010/10/16(土) 17:54:53もっとライブラリ豊富な言語に移行したほうがハッピーになれるよ。
0286デフォルトの名無しさん
2010/10/16(土) 18:00:520287デフォルトの名無しさん
2010/10/16(土) 18:02:58realloc() を使います。
http://codepad.org/igxPlgfy
0288デフォルトの名無しさん
2010/10/16(土) 18:03:21Cでは演算子を再定義出来ないから、JAVAのBigIntegerのような事は出来ない。
したがって、どれを使っても大差は無い。むしろ、ライセンス条件が選択の鍵。
GMPをダイナミックリンクしとけばいいんじゃねーの。
http://ja.wikipedia.org/wiki/%E5%A4%9A%E5%80%8D%E9%95%B7%E6%95%B4%E6%95%B0#.E3.83.A9.E3.82.A4.E3.83.96.E3.83.A9.E3.83.AA
0289デフォルトの名無しさん
2010/10/16(土) 18:08:580290デフォルトの名無しさん
2010/10/16(土) 18:14:11でも8000ビットを超えると計算結果が正しくなくなるというバグが
ありました。
その後に出てきたのがGMPでしたけど、使いにくいので使ってません。
0291デフォルトの名無しさん
2010/10/16(土) 18:45:53にはJAVAに移植した方がいいのでしょうか。
0292デフォルトの名無しさん
2010/10/16(土) 18:47:290293デフォルトの名無しさん
2010/10/16(土) 18:59:57スタートアップのフォルダパス取得方法わかりません、教えてくれませんか。
0294デフォルトの名無しさん
2010/10/16(土) 19:03:330295デフォルトの名無しさん
2010/10/16(土) 19:05:25Win32API質問箱 Build90
http://hibari.2ch.net/test/read.cgi/tech/1287205063/
0296デフォルトの名無しさん
2010/10/16(土) 19:10:21SHGetSpecialFolderPath
0297デフォルトの名無しさん
2010/10/16(土) 19:14:50とても良い事を教えてあげよう。
http://www.google.comをWebブラウザで開いて、真ん中にあるテキストボックスに
「スタートアップフォルダ 取得」って入力して、その右の検索ボタンを押すんだ。
0298デフォルトの名無しさん
2010/10/16(土) 19:17:100299デフォルトの名無しさん
2010/10/16(土) 19:30:410300デフォルトの名無しさん
2010/10/16(土) 19:41:430301デフォルトの名無しさん
2010/10/16(土) 19:44:300302デフォルトの名無しさん
2010/10/16(土) 19:46:050303デフォルトの名無しさん
2010/10/16(土) 22:15:560304デフォルトの名無しさん
2010/10/16(土) 22:27:000305デフォルトの名無しさん
2010/10/16(土) 22:29:430306デフォルトの名無しさん
2010/10/16(土) 22:33:25VC以外のコンパイラで符号ありのchar型の場合は、
unsigned char型で読むべきなのでしょうか?
0307デフォルトの名無しさん
2010/10/16(土) 22:34:430308デフォルトの名無しさん
2010/10/16(土) 22:39:310309デフォルトの名無しさん
2010/10/16(土) 22:42:080310デフォルトの名無しさん
2010/10/16(土) 22:44:40主に2バイト文字を読むときはunsigned charで読むべきなのかと思いまして。。
0311デフォルトの名無しさん
2010/10/16(土) 22:46:270312デフォルトの名無しさん
2010/10/16(土) 22:56:380313デフォルトの名無しさん
2010/10/16(土) 23:21:280314デフォルトの名無しさん
2010/10/16(土) 23:23:19なにもったいぶっちゃってんの
0315デフォルトの名無しさん
2010/10/16(土) 23:24:270316デフォルトの名無しさん
2010/10/16(土) 23:40:53本題に戻りたいんですが、
日本語などの2バイト文字を読むには、unsigned charで読むべきなのでしょうか
?
0317デフォルトの名無しさん
2010/10/16(土) 23:45:500318デフォルトの名無しさん
2010/10/16(土) 23:47:22最高にアホ
0319デフォルトの名無しさん
2010/10/16(土) 23:58:55多バイト文字は2バイトとは限らんよ。
つーか、Windows の場合は2バイト文字とマルチバイト文字はちゃんと区別されてるから、
普通は両対応させるためにマクロの TCHAR を使う。
リテラル文字列も生の "" を使ったりはしない。
まあ、出来てないゆとりも多いけどな。
0320デフォルトの名無しさん
2010/10/17(日) 00:00:41最高にアホ
0321デフォルトの名無しさん
2010/10/17(日) 00:03:020322デフォルトの名無しさん
2010/10/17(日) 00:04:22ビットの並びが先にある。
その値を文字として解釈させるなら符号に意味は無い。
つまり好きにしろってこと。
0323デフォルトの名無しさん
2010/10/17(日) 00:05:52それを char で扱うのは良くない。
0324デフォルトの名無しさん
2010/10/17(日) 00:10:31別に文字として解釈されるから、関係ないってことでいいですか?
0325デフォルトの名無しさん
2010/10/17(日) 00:15:43符号の扱いが違うんだから同じなわけがないだろ。
0326デフォルトの名無しさん
2010/10/17(日) 00:17:170327デフォルトの名無しさん
2010/10/17(日) 00:17:36これが便利なのは間違いない。
0328デフォルトの名無しさん
2010/10/17(日) 00:19:100329デフォルトの名無しさん
2010/10/17(日) 00:19:140330デフォルトの名無しさん
2010/10/17(日) 00:20:29文字列操作では関係無い。
0331デフォルトの名無しさん
2010/10/17(日) 00:21:560332デフォルトの名無しさん
2010/10/17(日) 00:25:28同意。
だが俺は Shift-JIS を使い続ける。
0333デフォルトの名無しさん
2010/10/17(日) 00:26:430334デフォルトの名無しさん
2010/10/17(日) 00:27:29どもありがとうございました。
0335デフォルトの名無しさん
2010/10/17(日) 00:38:24何でcharacter型なのに符号付けちゃったのかね?
0336デフォルトの名無しさん
2010/10/17(日) 00:41:19プッ
あんなデータ間延びする形式ありがたがっちゃってんの?w
0337デフォルトの名無しさん
2010/10/17(日) 00:44:38符号付きの小さい整数を扱うには「signed char」
符号なしの小さい整数を扱うには「unsigned char」
0338デフォルトの名無しさん
2010/10/17(日) 00:45:49で、サロゲートペアとか使っちゃうのw
0339デフォルトの名無しさん
2010/10/17(日) 00:46:59unicodeが16ビットで表現できると思ってるのか・・・
0340デフォルトの名無しさん
2010/10/17(日) 00:48:310341デフォルトの名無しさん
2010/10/17(日) 00:52:120342デフォルトの名無しさん
2010/10/17(日) 00:53:31整数は int 使えよ。
0343デフォルトの名無しさん
2010/10/17(日) 00:58:100344デフォルトの名無しさん
2010/10/17(日) 01:04:24まあ、いまさら、どうでもいいわ。
Unicodeが滅びるまでUTF-16でゴニョゴニョやればいいんじゃないの。
0345デフォルトの名無しさん
2010/10/17(日) 01:10:33UTF8 よりUTF16 。UTF16 よりUTF32だろうけど。
英語圏で使う限りは、UTF32を主流にして良い事がない。
するとUTF8になってしまうな。多勢派。
0346デフォルトの名無しさん
2010/10/17(日) 01:12:11UTF8やUTF16より、容量食わないEUCやSJISを使う。
0347デフォルトの名無しさん
2010/10/17(日) 01:15:390348デフォルトの名無しさん
2010/10/17(日) 01:21:22そういう連中が「容量」を言い訳にしてるのかもしれないが、容量は関係ない。
単なる既得権益者の妄言。
0349デフォルトの名無しさん
2010/10/17(日) 01:29:220350デフォルトの名無しさん
2010/10/17(日) 01:30:210351デフォルトの名無しさん
2010/10/17(日) 01:39:16日本語と、英語も使えるし充分だろ。
0352デフォルトの名無しさん
2010/10/17(日) 01:42:030353デフォルトの名無しさん
2010/10/17(日) 02:00:17アラビア、インドと中国を省く全世界の文字を網羅しているといっても過言じゃないな
0354デフォルトの名無しさん
2010/10/17(日) 02:05:28あれなら海外SF作品の言語から指輪物語エルフの文字まで網羅してるもんな。
0355デフォルトの名無しさん
2010/10/17(日) 02:10:02こんなローカル文字コードに対応するのは時間の無駄以外の何物でもない。
0356デフォルトの名無しさん
2010/10/17(日) 02:14:560357デフォルトの名無しさん
2010/10/17(日) 03:27:320358デフォルトの名無しさん
2010/10/17(日) 11:01:40教本を参考にしてVC++2008でscanf使おうとするとビルドで警告が出るのですが、
どういう記述にするのがWindowsの作法なんですか?
/*今警告の出る記述*
int res;
scanf("%d", &res)
0359デフォルトの名無しさん
2010/10/17(日) 11:20:380360デフォルトの名無しさん
2010/10/17(日) 11:21:51Windowsの作法というかVC流としては scanf_s を使うんじゃね
http://msdn.microsoft.com/ja-jp/library/w40768et.aspx
非標準 (VCでしか使えないので他のコンパイラと互換性がない) だけどな
0361デフォルトの名無しさん
2010/10/17(日) 11:36:40アリガトウございます。
scanf_sにしないといけないのですね。やってみます。
0362デフォルトの名無しさん
2010/10/17(日) 11:48:58警告の文面はちゃんと読んだか?
Windows かどうかとは、あるいは VC かどうかとさえ関係ない内容だぞ
scanf_s を使えと言ってくるところだけが VC の癖で
あとは C の一般論だ
0363デフォルトの名無しさん
2010/10/17(日) 12:15:32>Consider using scanf_s insted.
>To disable deprecation, use _CRT_SECURE_NO_WARNINGS.
>See online help for details.
この警告の内容ってそういうことだったのですね・・・orz
scanf_sにしたら警告、消えました。
ありがとうございます。。
0364デフォルトの名無しさん
2010/10/17(日) 12:21:53C FAQって20年くらい前の情報だしな。
今はrand()ですむような用件ならrand()%Nで十分。
0365デフォルトの名無しさん
2010/10/17(日) 12:31:3932ビットでも8ビットでも結局一文字の長さは可変長なんで、
コードを書く立場からするとUTF32でもべつに楽になるわけじゃないし
なんでもいい感じ。
文字を16bitで扱ってる言語とかOSとかむしろ失敗な感じ。
8ビットのままでよかった。
0366デフォルトの名無しさん
2010/10/17(日) 12:39:320367デフォルトの名無しさん
2010/10/17(日) 12:42:17結合文字があるから可変長。
0368デフォルトの名無しさん
2010/10/17(日) 12:45:16安全でない変数って例えば、どういうの?
0369デフォルトの名無しさん
2010/10/17(日) 12:57:580370デフォルトの名無しさん
2010/10/17(日) 13:20:330371デフォルトの名無しさん
2010/10/17(日) 13:21:590372デフォルトの名無しさん
2010/10/17(日) 13:24:41それ、誰へのレス?
0373デフォルトの名無しさん
2010/10/17(日) 13:31:000374デフォルトの名無しさん
2010/10/17(日) 13:33:12timezoneとかがそれに該当するらしいけど、なんで危険なんだろう。
グローバル変数でマルチスレッドと相性悪いのはわかるけど。
0375デフォルトの名無しさん
2010/10/17(日) 13:35:58>scanf で文字列を読み取る場合は、書式が %s の桁数を必ず指定してください。
>たとえば、"%s" ではなく、"%32s" と指定します。指定しなかった場合は、入力の書式が正しく指定されず、
>バッファ オーバーランが発生しやすくなります。または、scanf_s、_scanf_s_l、wscanf_s、_wscanf_s_l または fgets の使用を検討してください。
0376デフォルトの名無しさん
2010/10/17(日) 13:42:220377デフォルトの名無しさん
2010/10/17(日) 13:45:420378デフォルトの名無しさん
2010/10/17(日) 13:49:030379デフォルトの名無しさん
2010/10/17(日) 13:51:03フォーマットと実際に渡すポインタの型が違うと警告出すコンパイラも
あるんで、ありえなくはない。
0380デフォルトの名無しさん
2010/10/17(日) 13:52:15>>378
0381デフォルトの名無しさん
2010/10/17(日) 13:58:50gccはフォーマット文字列に対して正しい引数が渡されてる事を見るよ。
>>380
新しいの使っても、%sにint渡すエラーは解消できない。
0382デフォルトの名無しさん
2010/10/17(日) 14:02:48あるだろ。char*を渡した場合とか。
char a[4];
scanf("%d", a+3);
0383デフォルトの名無しさん
2010/10/17(日) 14:43:42あAいIうUえEおO
という文字列なら、”あ”を読んだあと、2バイト先に”A”があり、さらに2バイト先に”い”があり、さらに2バイト先に”I”が記録されることになる。固定長なら。
これなら、単純に「一文字読む毎に、2バイトずつ進める」という簡単な動作だけで読めてしまう。だから簡単。
一文字が3バイト固定でも、4バイト固定でも、話は同じ感じになる。
4バイトで表現できる数字は、42億もあるので、これなら未来永劫、新文字などの割り当てスペースが足りないという問題は起こらないとおもう。
だから、4バイト固定長の文字コードがあっても良いのではないかなぁ…と個人的には思う。
UTF8の場合、文字コードのバイト長が可変なので、たとえば
あAいIうUえEおO
なら、”あ”を読んだあと、3バイト先に”A”があり、さらに1バイト先に”い”があり、さらに3バイト先に”I”が記録されることになる。可変長なので読むのがめんどくさい。
実はたいして難しいことはしてないのだけど、それでも、固定長を読むのよりは難しいと思う。難しいというか、めんどくさい。
文字コードの仕様の中に、可変長による圧縮効果を巧みに含めたって、仕方ないと思う。個人的に。
可変長にするための情報を、各文字に記録してるからこそ、可変長にできるわけで、その情報を記録する分だけ4バイト中で使えるビット数が少ない。
だからたとえば最大4バイトの可変長にしたとしても、その4バイトに記録できる文字種類は42億よりも少ない。
圧縮は、圧縮のそれでやればいいのであって、なにも文字コードの仕様の中に、結果的にデータが圧縮されるような巧みな仕組みを含めなくても良いとおもう。個人的に。
もしも通信量などを節約したいのならば、そういうデータ圧縮は、文字コードの仕様としては含めずに、別途、データ圧縮のそれに任せてしまえばいいと思う。
4バイト固定長のユニコードが普及してくれた方がありがたい。と思う。個人的に。なぜなら、その文字列はとても単純な構造の配列だろうから。書くのも読むのもずっと気軽で簡単だろうから。
0384デフォルトの名無しさん
2010/10/17(日) 14:44:510385デフォルトの名無しさん
2010/10/17(日) 14:46:490386デフォルトの名無しさん
2010/10/17(日) 14:56:18読む気がしない
0387デフォルトの名無しさん
2010/10/17(日) 14:58:590388デフォルトの名無しさん
2010/10/17(日) 15:00:07一文字を固定長にしたかったら、少なくとも百数十ビットになる。
0389デフォルトの名無しさん
2010/10/17(日) 15:02:30自分の言いたいことを短くまとめられない奴が言えるか?
0390デフォルトの名無しさん
2010/10/17(日) 15:02:430391デフォルトの名無しさん
2010/10/17(日) 15:03:44その根拠は?
0392デフォルトの名無しさん
2010/10/17(日) 15:04:33初期のIPプロトコル設計者も同じような考えで失敗したわけだが。
0393デフォルトの名無しさん
2010/10/17(日) 15:04:52結合文字でググったら、一文字15バイトもあるって書いてあるページがあった。
0394デフォルトの名無しさん
2010/10/17(日) 15:06:20http://hibari.2ch.net/test/read.cgi/tech/1274937437/
こっちでやれクズ共
0395デフォルトの名無しさん
2010/10/17(日) 15:06:370396393
2010/10/17(日) 15:08:05http://www.bekkoame.ne.jp/~iimori/sw/UnicodeUtilsOSAX.html
よく読んだら15バイトってのは、UTF8でのバイト数だった。
でもこの有限会社とか、10バイトあるな。
0397デフォルトの名無しさん
2010/10/17(日) 15:13:27そこのサイト
書いた人間の性格の悪さがにじみ出るキモイ文章だな
0398デフォルトの名無しさん
2010/10/17(日) 15:18:21Unicodeは結合文字の扱いを定義しているからそれを文字として表せるのであって、
他の文字コードで同様のことをやろうと思えば、同程度のバイト数と、別途結合文字を形成するためのロジックが必要になる。
そういう意味では、むしろ別途ロジックが必要にならないUnicodeの方が結合文字に必要なバイト数は少なくて済む、といえる。
0399デフォルトの名無しさん
2010/10/17(日) 15:24:08char a[4];
gets(a + 3);
こんなの gets が悪いんじゃない
0400デフォルトの名無しさん
2010/10/17(日) 17:05:071 byte に納まりきらなかったなら byte の bit 幅の方を拡張するのが筋ってものだろう。
英語圏なら 8 ビットで充分だったからそうなってるだけだろ。
そんなもんそのまま受け入れる義理は無い。
ちゃんと1文字が 1 byte に入るように設計しろ。
0401デフォルトの名無しさん
2010/10/17(日) 17:09:40Unicodeは設計の根底部分が間違っている
0402デフォルトの名無しさん
2010/10/17(日) 17:14:160403デフォルトの名無しさん
2010/10/17(日) 17:19:14もっともUTF-8が無けりゃUnicodeは死んでいた
それなら元から可変長前提にしていれば良かったってこと
0404デフォルトの名無しさん
2010/10/17(日) 17:22:42ジジイの思考は無駄が多いよねー
0405デフォルトの名無しさん
2010/10/17(日) 17:26:09は?
じゃあ、文字集合のUCS-4に何か問題があるのか?
可変長にするまでもなく、まだまだ文字を増やす余地があるのだが。
そもそも文字集合はエンコーディングを前提とするものだろう。
お前が何を可変長前提にしていればよかったと言っているのか全くわからん。
0406デフォルトの名無しさん
2010/10/17(日) 17:29:070407デフォルトの名無しさん
2010/10/17(日) 17:31:220408デフォルトの名無しさん
2010/10/17(日) 17:34:29文字コードの種類は何故複数あるのでしょうか?
http://hibari.2ch.net/test/read.cgi/tech/1093251312/
0409デフォルトの名無しさん
2010/10/17(日) 17:39:57起動できるようにするには如何すれば良いんですか?
あとソースを書くときにはVisual C++ 2010を使ってます。
0410デフォルトの名無しさん
2010/10/17(日) 17:41:240411デフォルトの名無しさん
2010/10/17(日) 17:43:27MSVCR100.dll が見つからなかったため、このアプリケーションを
開始できませんでした。アプリケーションをインストールし直すと
この問題は解決される場合があります。
と出て他の人は起動できないらしいです
0412デフォルトの名無しさん
2010/10/17(日) 17:46:29http://www.microsoft.com/downloads/details.aspx?FamilyID=a7b7a05e-6de6-4d3a-a423-37bf0912db84&displayLang=ja
http://www.microsoft.com/downloads/details.aspx?FamilyID=bd512d9e-43c8-4655-81bf-9350143d5867&displayLang=ja
0413デフォルトの名無しさん
2010/10/17(日) 17:46:520414デフォルトの名無しさん
2010/10/17(日) 17:47:21了解です。ありがとうございます。
0415デフォルトの名無しさん
2010/10/17(日) 17:49:59RCの設定を
/MD(/MDd)から/MT(/MTd)に変更すれば
ランタイムインストールして貰わなくても動くよ
0416デフォルトの名無しさん
2010/10/17(日) 18:06:160417デフォルトの名無しさん
2010/10/17(日) 18:14:06できました!ありがとうございます
0418393
2010/10/17(日) 20:52:43まあ、いい悪いの話じゃなくて、一文字を固定長にしてどうこうみたいな
話は成り立たないねって話。
>>400
文字列の操作を、バイトとかビットとか意識しないで扱えるようにするほうが
いいだろうね。
0419デフォルトの名無しさん
2010/10/17(日) 20:59:570421デフォルトの名無しさん
2010/10/17(日) 21:08:530422デフォルトの名無しさん
2010/10/17(日) 21:10:26おk。
お前とは話が噛み合わないみたい。
0423393
2010/10/17(日) 21:15:20で、結合文字があるから結局マルチバイトのエンコーディングの文字列と
処理の手間は変わらない、一文字一バイトでいいよって反論。
それに結合文字は関係ないって言ってもしょうがない。
実際の処理で無視できないんだから。
0424デフォルトの名無しさん
2010/10/17(日) 21:18:08文字コードの話は専用のスレがあるんだからそこでやれ。
言ってる意味わかるか?
そこでやれ。
0426デフォルトの名無しさん
2010/10/17(日) 21:23:07統合文字に対応しなければUnicodeのエンコーディングは基本的に高々4バイトだ。
0427デフォルトの名無しさん
2010/10/17(日) 21:27:22文字コード総合スレ part6
http://hibari.2ch.net/test/read.cgi/tech/1278923059/
0428デフォルトの名無しさん
2010/10/17(日) 21:28:290429393
2010/10/17(日) 21:29:21ま、個々のアプリとかシステムなら、入ってるときに結合文字ははじいて
中身は32ビット固定で処理するとかありかもな。
でも上のほうで32ビットにすればいいって言ってたやつはそういう意味じゃ
なかっただろ。
俺の働いてるようなITドカタの現場だとサロゲートペアにさえ対応しない。
その意味じゃ16ビットでも十分だな。
0430デフォルトの名無しさん
2010/10/17(日) 21:30:26http://hibari.2ch.net/test/read.cgi/tech/1278923059/
0431393
2010/10/17(日) 21:32:07わざわざ一文字32ビットの処理を手作りしてサロゲートペアのみ対応って
中途半端だな。
0432デフォルトの名無しさん
2010/10/17(日) 21:33:03死ね
お前が存在することなんて誰も望んでないから
喜んでくたばれ
0433デフォルトの名無しさん
2010/10/17(日) 21:33:350434デフォルトの名無しさん
2010/10/17(日) 21:34:26EUC、SJISは滅びろ。
0435デフォルトの名無しさん
2010/10/17(日) 21:41:55EUC、SJISは滅びろ。
0436デフォルトの名無しさん
2010/10/17(日) 21:43:04EUC、SJISは滅びろ。
0437デフォルトの名無しさん
2010/10/17(日) 21:43:110438デフォルトの名無しさん
2010/10/17(日) 21:44:170439デフォルトの名無しさん
2010/10/17(日) 21:53:03無駄すぎる。
0440デフォルトの名無しさん
2010/10/17(日) 21:54:47unixの標準もこれだろ。
0441デフォルトの名無しさん
2010/10/17(日) 21:57:320442デフォルトの名無しさん
2010/10/17(日) 22:05:06そもそも、既にUTF-8は流行ってるし。
0443デフォルトの名無しさん
2010/10/17(日) 22:06:430444デフォルトの名無しさん
2010/10/17(日) 22:07:04なんで英語圏の連中の都合に合わせて窮屈な思いしなきゃならんのだ。
0445デフォルトの名無しさん
2010/10/17(日) 22:09:08トリつけろクズ
0446デフォルトの名無しさん
2010/10/17(日) 22:09:18お前は今すぐ画像非表示にして、Youtubeとニコ動には絶対アクセスするな。
0447デフォルトの名無しさん
2010/10/17(日) 22:10:34出てきたかという回数を標準出力に出力するプログラムなのですが
#include <stdio.h>
#define MAXCHAR 256
main()
{
int count[MAXCHAR];
int c;
int i;
for (i = 0; i < MAXCHAR; i++)
count[i] = 0;
while ((c = getchar()) != EOF)
count[c]++;
for (i = 0; i < MAXCHAR; i++)
printf("%d: %d\n", i, count[i]);
}
エラーが出てしまいました。どこが間違っているんですか
0448デフォルトの名無しさん
2010/10/17(日) 22:14:370449393
2010/10/17(日) 22:15:060450デフォルトの名無しさん
2010/10/17(日) 22:16:03エラーが出たならそれ貼れよ。
0451デフォルトの名無しさん
2010/10/17(日) 22:16:47全角スペース入ってるよ。
0452デフォルトの名無しさん
2010/10/17(日) 22:20:560から256って段階でイヤな感じの問題だな。
0453デフォルトの名無しさん
2010/10/17(日) 22:24:36return 0; とかがないからじゃないの。
main()って書いても、実際は int main(void) なんでしょ。
0454デフォルトの名無しさん
2010/10/17(日) 22:28:200455デフォルトの名無しさん
2010/10/17(日) 22:30:360457デフォルトの名無しさん
2010/10/17(日) 22:45:40全角スペースを抜いたら、私の環境ではちゃんとうごきました。
0458デフォルトの名無しさん
2010/10/17(日) 22:46:06一箇所だけ不自然にインデントが入ってるところ。
0459デフォルトの名無しさん
2010/10/17(日) 22:48:30count[c]++;
for (i = 0; i < MAXCHAR; i++) <---- この行の頭に二つ
printf("%d: %d\n", i, count[i]);
0460デフォルトの名無しさん
2010/10/17(日) 22:48:310461デフォルトの名無しさん
2010/10/17(日) 22:48:480462デフォルトの名無しさん
2010/10/17(日) 22:48:510463デフォルトの名無しさん
2010/10/17(日) 22:54:550464デフォルトの名無しさん
2010/10/17(日) 22:58:510465デフォルトの名無しさん
2010/10/17(日) 22:59:19>>462->>463
メモ帳でソースファイルを作成しています。エディタでいいの教えてください
0466デフォルトの名無しさん
2010/10/17(日) 23:00:030467デフォルトの名無しさん
2010/10/17(日) 23:00:500468デフォルトの名無しさん
2010/10/17(日) 23:01:490469デフォルトの名無しさん
2010/10/17(日) 23:03:590470デフォルトの名無しさん
2010/10/17(日) 23:04:230471デフォルトの名無しさん
2010/10/17(日) 23:04:31バックスラッシュ表示できないと不便だろ。
??/ みたいに書かないといけないから面倒だし。
0472デフォルトの名無しさん
2010/10/17(日) 23:04:330473デフォルトの名無しさん
2010/10/17(日) 23:06:490474デフォルトの名無しさん
2010/10/17(日) 23:07:580475デフォルトの名無しさん
2010/10/17(日) 23:09:49どうすればいいですか?
0476デフォルトの名無しさん
2010/10/17(日) 23:13:480477デフォルトの名無しさん
2010/10/17(日) 23:13:540478デフォルトの名無しさん
2010/10/17(日) 23:15:08・からだを横にまげる運動
・からだをねじる運動
をシツコク行います。
0479デフォルトの名無しさん
2010/10/17(日) 23:42:320480デフォルトの名無しさん
2010/10/17(日) 23:48:310481デフォルトの名無しさん
2010/10/17(日) 23:56:410482デフォルトの名無しさん
2010/10/18(月) 00:11:57C言語で。
初心者向けのいい講座になるでしょう。
0483デフォルトの名無しさん
2010/10/18(月) 00:13:060484デフォルトの名無しさん
2010/10/18(月) 00:13:150485デフォルトの名無しさん
2010/10/18(月) 00:16:240486デフォルトの名無しさん
2010/10/18(月) 00:19:170487デフォルトの名無しさん
2010/10/18(月) 00:21:48EDITコントロール貼り付けるだけじゃだめか?
0488デフォルトの名無しさん
2010/10/18(月) 00:32:090489デフォルトの名無しさん
2010/10/18(月) 00:41:33題材としては初心者向けだよ。
0490デフォルトの名無しさん
2010/10/18(月) 00:43:14え?
0491デフォルトの名無しさん
2010/10/18(月) 00:48:24まぁ使い物になるモノはできないだろうけど
0492デフォルトの名無しさん
2010/10/18(月) 00:49:14必要になるアルゴリズムを列挙してみなよ
できるならねw
0493デフォルトの名無しさん
2010/10/18(月) 00:52:04アルゴリズムだとさ、笑い過ぎて腹痛い。
0494デフォルトの名無しさん
2010/10/18(月) 00:54:04俺は専門学校に通っていて、周りはC、C++をあまりやらずに
ゲームプログラミングをしている。俺は意味も分からないまま
プログラミングをするのが嫌だから、CとC++の本を読んで
勉強しているんだけど…このままじゃダメなのかな…
クラスの人たちは何だかんだで3Dゲーム(学校のライブラリを使っている)
を作ったりしてるし、凄い置いていかれた気分になってしまった…
0495デフォルトの名無しさん
2010/10/18(月) 00:56:040496デフォルトの名無しさん
2010/10/18(月) 00:56:54ダメだな。だいたい空気読めないみたいだし。
むいてないよ。やめたら?
0497デフォルトの名無しさん
2010/10/18(月) 00:57:230498デフォルトの名無しさん
2010/10/18(月) 00:57:37はったりの世界でもあるからとりあえずなんか作ることも必要。
クラスの連中がやってることは軽くこなした上で
基礎を追い求めるくらいの意気込みが必要。
0499デフォルトの名無しさん
2010/10/18(月) 00:58:140500デフォルトの名無しさん
2010/10/18(月) 00:59:54専門学校ではほとんど学校側がソースコードを組んであって
ほんの少しパラメータを弄ったりしているだけという書き込みを見たことがある
それが本当ならツクールを弄ってるのと変わらないだろうから焦る必要は全く無い
0501デフォルトの名無しさん
2010/10/18(月) 01:00:11つうかその話をここで続けるつもりならコテつけてくれないかな
0502デフォルトの名無しさん
2010/10/18(月) 01:00:18基礎と3Dはやったほうがいい。
正直専門やゲーム会社新卒レベルのC++なんてひどいもん。
0503デフォルトの名無しさん
2010/10/18(月) 01:02:030504デフォルトの名無しさん
2010/10/18(月) 01:02:11を1年で出来ないなら辞めちまえ
0505デフォルトの名無しさん
2010/10/18(月) 01:03:020506デフォルトの名無しさん
2010/10/18(月) 01:03:20クラスを使わずC言語のみで開発するのか
0507デフォルトの名無しさん
2010/10/18(月) 01:03:510508デフォルトの名無しさん
2010/10/18(月) 01:04:31笑うっっw
0509デフォルトの名無しさん
2010/10/18(月) 01:04:56とりあえず動かすという観点でSTLは使えるだろ
C言語で文字列操作、動的なメモリ確保したら多くのコードがいるぞ。
0510デフォルトの名無しさん
2010/10/18(月) 01:05:370511デフォルトの名無しさん
2010/10/18(月) 01:13:54使った方が成果/労働の比率は良くなるだろうって事。
STLがもしボトルネックでも完成後にパフォーマンス調べられるし。
0512デフォルトの名無しさん
2010/10/18(月) 01:21:09le ファイル名 ins 10 3 A
で、ファイルの10行目、3文字目に、文字Aを挿入する。
例:ABCD → ABACD
le ファイル名 clear 10 3
で、ファイルの10行目、3文字目の文字を切り取って消去する。
例:ABCD → ABD
le をできる限り短い行数で実装せよ。ただしlibc以外のライブラリを使用してはならない。
0513デフォルトの名無しさん
2010/10/18(月) 01:25:04あんまりいい指標じゃないと思うんだが
0514デフォルトの名無しさん
2010/10/18(月) 01:26:090515デフォルトの名無しさん
2010/10/18(月) 01:26:520516デフォルトの名無しさん
2010/10/18(月) 01:29:34凄いやる気が出たよ!これからは両方頑張ってみます!
本当にありがとう!!
0517デフォルトの名無しさん
2010/10/18(月) 01:29:52もう寝るワ
0518デフォルトの名無しさん
2010/10/18(月) 01:55:12http://codepad.org/31P3pvVG
0519デフォルトの名無しさん
2010/10/18(月) 10:33:260520デフォルトの名無しさん
2010/10/18(月) 14:10:490521デフォルトの名無しさん
2010/10/18(月) 14:56:01正しく位数が計算されません。正確には無限遠点の数が変わってしまいます。
スレ違いかもしれませんが知っている人がいたらどうすればいいのか
教えてください。
0522デフォルトの名無しさん
2010/10/18(月) 14:59:22変更できなくなるってことでいいですか?
0523デフォルトの名無しさん
2010/10/18(月) 14:59:590524デフォルトの名無しさん
2010/10/18(月) 15:00:400525デフォルトの名無しさん
2010/10/18(月) 15:00:45どこにconstをつけるかで異なります。
0526デフォルトの名無しさん
2010/10/18(月) 15:04:16自分のあなるにおちんちんを入れればわかるよ
0527デフォルトの名無しさん
2010/10/18(月) 15:05:05これならどうなりますか?
0528デフォルトの名無しさん
2010/10/18(月) 15:08:130529デフォルトの名無しさん
2010/10/18(月) 15:17:49いいでしょうか?
0530デフォルトの名無しさん
2010/10/18(月) 15:24:49○ アヌス
0531デフォルトの名無しさん
2010/10/18(月) 15:39:350532デフォルトの名無しさん
2010/10/18(月) 15:46:27どこから何をやればいいのか全くわかりません・・・
誰か教えてください
0533デフォルトの名無しさん
2010/10/18(月) 15:49:51>ウイルス、ハッキング・クラッキングを求めるような発言は禁止です。
0534デフォルトの名無しさん
2010/10/18(月) 15:59:130535デフォルトの名無しさん
2010/10/18(月) 18:21:52風紀委員死ね。
0536デフォルトの名無しさん
2010/10/18(月) 18:30:30鼬害。
0537デフォルトの名無しさん
2010/10/18(月) 18:45:55残念ながらチートはハッキング・クラッキングに入る.
0538デフォルトの名無しさん
2010/10/18(月) 19:10:32>>537
「残念」なんだw
0539デフォルトの名無しさん
2010/10/18(月) 19:49:49入らねーよ。カス。
0540デフォルトの名無しさん
2010/10/18(月) 19:58:03実行中のプログラムに他のプログラムから干渉してデータの改ざんを行うんだから
クラッキングには入りそうだけどな
つかオンラインゲームのFPSのチートとかになると運営側のサーバーをクラックしないとできないんじゃね?
0541デフォルトの名無しさん
2010/10/18(月) 20:09:11あれはチート(ズル)に入ると思うけど、別に問題ない気がする。
そのゲームの利用規約に書いてある筈だよ。
クラッキングとかチート以前に、規約違反ってことになると思う。
その規約違反の種類がクラックだのチートってことでしょ。
昔クラック用サーバというのがあって、クラックして進入してよい、としてある。
進入したら、その脆弱部分を教えてもらって、セキュリティに役立てるとかするわけ。
今も探せばあるかもしれん。
0542デフォルトの名無しさん
2010/10/18(月) 20:41:05> クラッキングには入りそうだけどな
バカ言え。アンチウイルスもそういうプログラムだが、クラッキングか?
0543デフォルトの名無しさん
2010/10/18(月) 20:42:31チートとグリッチ(バグ利用)は違う
0544デフォルトの名無しさん
2010/10/18(月) 20:55:18すなわち、それを行う目的によって変わる。
トロイの木馬はリモートサーバーにもなるし、ファイアーウォールはマルウェアにもなる。
んでスレ違いだからどっか行け。
0545デフォルトの名無しさん
2010/10/18(月) 22:17:31bb
aa
10, 10
と表示されました。
なんでaa, bbの順じゃないですか。
どういう仕組みでこういう順番になってますか。
#include <stdio.h>
int main()
{
printf("%d, %d\n", puts("aa"), puts("bb"));
return 0;
}
0546デフォルトの名無しさん
2010/10/18(月) 22:23:06実装の都合で。
0547デフォルトの名無しさん
2010/10/18(月) 22:28:37aa bbでもbb aaでも仕様通り。そういうのに依存したコードは書いちゃダメ
0548デフォルトの名無しさん
2010/10/18(月) 22:40:200549デフォルトの名無しさん
2010/10/18(月) 22:55:26フォーマット文字列がスタックの一番上に詰まれるようになってる。
(フォーマットを見て、値が何個つまれてるか判断する)
それで右側から評価されてる。
0550デフォルトの名無しさん
2010/10/18(月) 22:57:070551デフォルトの名無しさん
2010/10/18(月) 23:04:50なんかまずいの?
規格ではこうで、>>545の現象はこういうことでって説明で別に問題ないと思うけど。
0552デフォルトの名無しさん
2010/10/18(月) 23:16:09コンパイル時に型も個数も分かっているからどうとでもなるよ
0553デフォルトの名無しさん
2010/10/18(月) 23:16:25実装考えたらそうだね
逆に aa->bb の順で処理するのは面倒くさそうだ
スタックに引数が右から積まれるのって規格だっけ?(PASCAL型とかの例外が今は有るけど)
だとするならば引数は右から評価されるってのも規格の一部と言える気もする
0554デフォルトの名無しさん
2010/10/18(月) 23:17:46呼び出された側のコンパイル時に決定してないだろアホか?
0555デフォルトの名無しさん
2010/10/18(月) 23:18:50アホはお前だろw
0556デフォルトの名無しさん
2010/10/18(月) 23:21:00どうとでもなるけど、まあ、よくある実装の例を出しただけだよ。
0557デフォルトの名無しさん
2010/10/18(月) 23:21:33C言語の規定にスタックなんぞ無い
それはCPUの都合だ
0558デフォルトの名無しさん
2010/10/18(月) 23:33:320559デフォルトの名無しさん
2010/10/18(月) 23:34:03どうにもならない。呼び出され側はコンパイル時点で呼び出し側の個数も型もわからない。
0560デフォルトの名無しさん
2010/10/18(月) 23:34:540561デフォルトの名無しさん
2010/10/18(月) 23:36:03加算も出来ないCPUなんて使ってるのかよw
0562デフォルトの名無しさん
2010/10/18(月) 23:52:100563デフォルトの名無しさん
2010/10/18(月) 23:55:070564デフォルトの名無しさん
2010/10/18(月) 23:59:440565デフォルトの名無しさん
2010/10/19(火) 00:06:03そんなことはないよ
スタックに積むってのは特別な事じゃない
特定箇所に値を書き込んでスタックポインタを進めているだけだから
SP+8 に書き込みとかで簡単に実現できる
0566デフォルトの名無しさん
2010/10/19(火) 00:11:230567デフォルトの名無しさん
2010/10/19(火) 00:13:35stdcall でも乗せないの?
0568デフォルトの名無しさん
2010/10/19(火) 00:21:50gccでそういう事してるの見たことあるよ。
0569デフォルトの名無しさん
2010/10/19(火) 01:18:06アフィン座標と射影座標では無限遠点の表現が違っていて、判定条件を
知らないまま2日無駄にした。
0570デフォルトの名無しさん
2010/10/19(火) 05:55:480571デフォルトの名無しさん
2010/10/19(火) 05:58:330572Perl忍者 ◆M5ZWRnXOj6
2010/10/19(火) 09:46:38きも
0573デフォルトの名無しさん
2010/10/19(火) 10:30:35とかいうスレより遥かにまし
ttp://hibari.2ch.net/test/read.cgi/tech/1284704280/l50
こっちはマジで気持ち悪い
0574デフォルトの名無しさん
2010/10/19(火) 12:27:33JAVAからJNIの仕組みを利用してCのI/Fを使おうとしています。JAVA側から引数でint型で1を渡そうとしていますが受け取るC側でint型の1と認識できますか?
0575デフォルトの名無しさん
2010/10/19(火) 15:07:11JNI で自動生成されるヘッダを正しく使うなら可能
多分ヘッダでは long になってると思うけどw
0576デフォルトの名無しさん
2010/10/19(火) 20:20:58http://cruel.org/freeware/hacker.html
>ハンドル名にまつわる問題については、もうちょっと詳しく書いておきましょうか。ハンドルの陰にアイデンティティを隠すのは、クラッカーや、warez d00dz や、他の下等な生の形態に特徴的な、子どもじみた愚かな行動です
0577デフォルトの名無しさん
2010/10/19(火) 20:38:58なんなの、この人は
0578デフォルトの名無しさん
2010/10/19(火) 21:31:10int main(void)
{
printf("ああああああああ\tあああ\n");
printf("ああああ\tああああああああ\n");
return 0;
}
揃わないんですけどどう解決したらいいですか?
0579デフォルトの名無しさん
2010/10/19(火) 21:33:00なにが揃わないの?
0580デフォルトの名無しさん
2010/10/19(火) 21:35:510581デフォルトの名無しさん
2010/10/19(火) 21:36:230582デフォルトの名無しさん
2010/10/19(火) 21:37:560583デフォルトの名無しさん
2010/10/19(火) 21:40:460584デフォルトの名無しさん
2010/10/19(火) 21:47:420585デフォルトの名無しさん
2010/10/19(火) 21:52:25ああああ ああああああああ
こんな感じの出力を期待してるのかね。
0586デフォルトの名無しさん
2010/10/19(火) 21:54:340587デフォルトの名無しさん
2010/10/19(火) 21:57:430588デフォルトの名無しさん
2010/10/19(火) 22:00:510589デフォルトの名無しさん
2010/10/19(火) 22:01:050590デフォルトの名無しさん
2010/10/19(火) 22:03:250591デフォルトの名無しさん
2010/10/19(火) 22:05:14ありがとうございます
解決しました
0592デフォルトの名無しさん
2010/10/19(火) 22:06:310593デフォルトの名無しさん
2010/10/19(火) 22:24:47今から二回に分けて貼ります
/*
* cat3 ファイルを連結して出力
* パラエータがないときには標準入力を処理
*/
#include <stdio.h>
#include <stdlib.h>
void do_one(FILE *);
void cant(char *);
main(int argc, char **argv)
{
FILE *fp;
--argc; /* argv[0]の分だけ減らす*/
++argv; /* argv[0]を読み飛ばす*/
if (argc == 0) /* パラメータ無し */
do_one(stdin);/*標準入力を処理*/
else{
while (argc--){
if ((fp = fopen(*argv,"r")) == NULL)
cant(*argv);
do_one(fp);
fclose(fp);
0594デフォルトの名無しさん
2010/10/19(火) 22:27:02argv++;
}
}
return (0);
}
void do_one(FILE *fp)
{
int c;
while ((c = fgetc(fp)) != EOF)
fputc(c,stdout);
}
void cant(char *name)
{
fprintf(stderr,
"can't open %s\n",name);
exit(1);
}
0595デフォルトの名無しさん
2010/10/19(火) 22:29:330596デフォルトの名無しさん
2010/10/19(火) 22:34:19cant(*argv);
>>>> else {
do_one(fp);
fclose(fp);
>>>> }
0597デフォルトの名無しさん
2010/10/19(火) 22:34:32#include <stdlib.h>
int main(int argc, char **argv) {
char cmd[100];
int cnt = 0;
while(0 < --argc){
sprintf(cmd, "cat %s\0", argv[++cnt]);
system(cmd);
}
return 0;
}
0598デフォルトの名無しさん
2010/10/19(火) 22:41:28exit()で終わってるから、それは関係ないだろ。
0599デフォルトの名無しさん
2010/10/19(火) 22:43:08初めて使ったよ
0600デフォルトの名無しさん
2010/10/19(火) 22:46:4520行目、ふいた。
0601デフォルトの名無しさん
2010/10/19(火) 22:50:570602デフォルトの名無しさん
2010/10/19(火) 22:52:050603デフォルトの名無しさん
2010/10/19(火) 22:52:170604デフォルトの名無しさん
2010/10/19(火) 22:52:280605デフォルトの名無しさん
2010/10/19(火) 22:54:390606デフォルトの名無しさん
2010/10/19(火) 22:56:080607デフォルトの名無しさん
2010/10/19(火) 22:56:36エディタもメリーつかってるんですが
0608デフォルトの名無しさん
2010/10/19(火) 23:00:060609デフォルトの名無しさん
2010/10/19(火) 23:00:18なんでcodepadに貼るときに改悪してるんだ。
0610デフォルトの名無しさん
2010/10/19(火) 23:00:291>c:\cprogram\test\cat3.c(33) : error C2143: 構文エラー : ';' が '型' の前にありません。
1>c:\cprogram\test\cat3.c(38) : error C2065: 'c' : 定義されていない識別子です。
1>c:\cprogram\test\cat3.c(39) : error C2065: 'c' : 定義されていない識別子です。
ようわからん
0611デフォルトの名無しさん
2010/10/19(火) 23:01:580612デフォルトの名無しさん
2010/10/19(火) 23:02:33それとも>>610の馬鹿か?
0613デフォルトの名無しさん
2010/10/19(火) 23:04:11>>610
20行目
× else{
○ }else{
35行目
× intc;
○ int c;
intの後に半角スペース
0614デフォルトの名無しさん
2010/10/19(火) 23:05:38このスレにはってあるコードはそんなエラーでないだろ。
0615デフォルトの名無しさん
2010/10/19(火) 23:07:54・C99でコンパイルしている(mainの戻り値の型なし)
・C++でコンパイルしている(同上)
・実行時エラーとコンパイル時警告の区別がつかない
のどれかだろう
0616デフォルトの名無しさん
2010/10/19(火) 23:09:29解決しました
>>614 ちょこちょこ変えてた
0617デフォルトの名無しさん
2010/10/19(火) 23:14:39$ gcc cat3,c
gcc: cat3,c: No such file or directory
gcc: no input files
0618デフォルトの名無しさん
2010/10/19(火) 23:15:490619デフォルトの名無しさん
2010/10/19(火) 23:25:40コンパイルの仕方間違えた
0620デフォルトの名無しさん
2010/10/19(火) 23:32:11お騒がしてすみません
0621デフォルトの名無しさん
2010/10/19(火) 23:33:300622デフォルトの名無しさん
2010/10/20(水) 00:24:040623デフォルトの名無しさん
2010/10/20(水) 00:24:490624デフォルトの名無しさん
2010/10/20(水) 00:25:200625デフォルトの名無しさん
2010/10/20(水) 00:26:37関数から抜けるのに普通に使うだろ
0626デフォルトの名無しさん
2010/10/20(水) 00:57:13g�tのファイルをUSBに入れて違うパソコンで作業したいんだが
コンパイルするとcannot output…みたいに出てきてしまうんだが、どうすればいい
自分のパソコンは修理中
0627デフォルトの名無しさん
2010/10/20(水) 01:40:100628デフォルトの名無しさん
2010/10/20(水) 01:48:29ド、ドラックして
0629デフォルトの名無しさん
2010/10/20(水) 01:54:57エス…か…
薬の影響で錯乱状態だな
0630デフォルトの名無しさん
2010/10/20(水) 01:59:02以下のリスト構造を作ったのですが新しいセルを作って
構造体のname[32]に文字列を入力する時にgets(mp -> name)にすると
氏名入力 ---> 年齢入力 ---> みたいな感じで氏名入力が飛ばされてしまうのですが
scanf("%s", mp -> name)にすると上手くいきます。
またscanf("%s", &mp -> name)でも何故か動きました。
理由を考えたのですがどうしても分からなかったので
つたない説明ですがエスパーの方おりましたらお願いします。
0631デフォルトの名無しさん
2010/10/20(水) 02:00:30char name[32];
int age;
struct Data *next;
} Meibo;
void write_meibo(Meibo *head)
{
Meibo *p, *mp;
int a;
p = head;
while (p -> next != NULL) {
p = p -> next;
}
mp = (Meibo*)malloc(sizeof(Meibo));
if (mp == NULL) {
perror("メモリ確保に失敗しました\n");
exit(-1);
}
printf("氏名入力 ---> ");
scanf("%s", mp -> name); /* gets(mp -> name)では出来ない
printf("年齢入力 ---> ");
scanf("%d", &(mp -> age));
mp -> next = NULL;
p -> next = mp;
}
0632デフォルトの名無しさん
2010/10/20(水) 02:01:220633デフォルトの名無しさん
2010/10/20(水) 02:12:11ドラッグだよ
やはり他のパソコンで1から環境設定とかインストールしないといけないの?
0634デフォルトの名無しさん
2010/10/20(水) 02:12:560635デフォルトの名無しさん
2010/10/20(水) 02:13:370636デフォルトの名無しさん
2010/10/20(水) 02:15:22/ _ノ \
| u ( ●)(●) ____
. | (__人__) /::::::::: u\
| ` ⌒´ノ/ノ└ \,三_ノ\ ,∩__
. | /::::::⌒( ●)三(●)\ fつuu
. ヽ |:::::::::::::::::⌒(__人__)⌒ | | |
ヽ \:::::::::: ` ⌒´ ,/ _ | |
/  ̄\ /⌒ .ヽ i 丿
| ヽ、 \/ /(⌒) ξ) ̄ ̄´
\ ./ / / |
0637デフォルトの名無しさん
2010/10/20(水) 05:05:48gets() と scanf() の仕様による
gets() は \n の検出で処理を完了するが scanf() は終端の \n を読み取らない為、バッファに残す
よって scanf() の直後に gets() を呼ぶと gets() はバッファに残った \n を取得し即時終了する
while( 1 ) {
printf( "Name>" );
gets( name );
printf( "Age>" );
scanf( "%d", &age );
}
上記処理において一回目の gets() は正常に動作するが、2回目以降は即時終了となるために Name>Age> と表示される
0638Perl忍者 ◆M5ZWRnXOj6
2010/10/20(水) 12:25:35きも
0639デフォルトの名無しさん
2010/10/20(水) 13:52:32きも
0640デフォルトの名無しさん
2010/10/20(水) 13:58:34きも
巻物?なんか忍者っぽいな
0641デフォルトの名無しさん
2010/10/20(水) 17:08:52という問題を解いていて、困っています。
サイトでツェラーの公式を見つけたので、以下の公式を使って解いています。
h百y年m月d日の曜日を求めることを考える。
(例えば、2001年11月3日の場合、h=20、y=1、m=11、d=3 である)
(注意) 1月、2月は、前の年の13月、14月として計算する。
W = y+[y/4]+[h/4]−2h+[13(m+1)/5]+d
土日月火水木金土 = 0123456 に対応
解いてみたプログラムがこちらです。
http://codepad.org/3g3tX4iN
答えは171 らしいですが、どうしても正解に辿り着けません。
どこが間違っているか、ご指摘お願いします。
0642デフォルトの名無しさん
2010/10/20(水) 17:12:40Wを7で割ったmodの値が曜日に変換されます
0643デフォルトの名無しさん
2010/10/20(水) 17:13:27> 土日月火水木金土 = 0123456 に対応
土曜日が二回ある
日曜日は0じゃなかったかな
0644デフォルトの名無しさん
2010/10/20(水) 17:20:35あ、ほんとだ。
この公式では
0123456が
土日月火水木金
に対応してるみたいです。
0645デフォルトの名無しさん
2010/10/20(水) 17:32:32(注意) 1月、2月は、””前の年””の13月、14月として計算する。
が入ってない
0646デフォルトの名無しさん
2010/10/20(水) 17:34:130647デフォルトの名無しさん
2010/10/20(水) 17:36:270648デフォルトの名無しさん
2010/10/20(水) 17:39:56よく分かりました。
ありがとうございました。
0649デフォルトの名無しさん
2010/10/20(水) 17:45:461月が13とみなされ、
2月が14とみなされるので、
3〜14の間をループさせるように作りました。
>>645
すいません・・・。
0650デフォルトの名無しさん
2010/10/20(水) 17:51:29プログラムは別のサイトで見つけてきたりしてない?
使いやすいようにずらしてあると思うんだけど
0651デフォルトの名無しさん
2010/10/20(水) 17:53:33自分で書きましたよ?
0652デフォルトの名無しさん
2010/10/20(水) 18:00:22http://cruel.org/freeware/hacker.html
>ハンドルの陰にアイデンティティを隠すのは、クラッカーや、warez d00dz や、他の下等な生の形態に特徴的な、子どもじみた愚かな行動です。
0653デフォルトの名無しさん
2010/10/20(水) 18:23:54-1じゃなくて-6だな
あと>>645に対応する必要があるけど
このままだと1901年3月から2001年2月になるような
0654デフォルトの名無しさん
2010/10/20(水) 18:39:193から始まってるので、
3月→4月→5→6→7→8→9→10→11→12
となりますが、
12→13(1月)→14(2月)
という風に、12月から1月、2月と、回ってきます。
-6にしたら答えに辿り着きました
ありがとうございました
0655デフォルトの名無しさん
2010/10/20(水) 18:51:390656デフォルトの名無しさん
2010/10/20(水) 18:55:170657デフォルトの名無しさん
2010/10/20(水) 19:14:10>>645はわざわざ「前の年」を強調してくれてるんだから少しは聞く耳を持とうよ
答えだけあっててもしょうがないだろうに
0658デフォルトの名無しさん
2010/10/20(水) 19:22:45>>657さん
ありがとうございます。
強調してくれていたのに気付いていませんでした・・・。すいません。
ありがとうございました。
訂正してみました
http://codepad.org/iFOTsObn
0659デフォルトの名無しさん
2010/10/20(水) 20:12:12scanf("%d",&n);でnに正の整数を入力する。次にn回正の整数を入力。
そのうち、奇数のものの個数を求めて出力するプログラムを作れ。
という問題があるのですが、どうあがいても作ることが出来ません・・。
for文・while文・if文などを使ってみましたが失敗しました。
プログラムを教えてください。お願いします。
0660デフォルトの名無しさん
2010/10/20(水) 20:14:45ifの条件をn%2==1にしてその時だけカウントすればいいじゃないか
0661デフォルトの名無しさん
2010/10/20(水) 20:17:29if(n%2==1)++a;
というふうにはやってあります。
たぶんプログラム全体的におかしくて個数が出ないんだとおもいます・・・。
0662デフォルトの名無しさん
2010/10/20(水) 20:17:350663デフォルトの名無しさん
2010/10/20(水) 20:17:43putchar(c);
}
これをもっと簡潔に書く方法ってない?
判定の二重括弧が見苦しい気がするんだけど。
これが if なら単純に外に出せるから
c = getchar();
if ( c != EOF ){
putchar(c);
}
こうできるんだけど、
while で外出しすると
また内側にも書かないとならなくなるし。
0664デフォルトの名無しさん
2010/10/20(水) 20:22:07for (;;) {
c = getchar();
if (c == EOF) break;
putchar(c);
}
おれも条件式の中で代入も一緒に、ってのはなるべく避けてる。
0665デフォルトの名無しさん
2010/10/20(水) 20:28:32>>違うパソコン
Windows かLinux またはMac どれなんだ。また、コンパイラは何を使ってんだ?
0666デフォルトの名無しさん
2010/10/20(水) 20:28:53こういう書き方は、C では当たり前のイデオムなのですけれども。
0667デフォルトの名無しさん
2010/10/20(水) 20:32:380668デフォルトの名無しさん
2010/10/20(水) 21:29:55んなこたみんな知ってるし聞いてない。
0669デフォルトの名無しさん
2010/10/20(水) 21:43:14while (c = getchar(), c != EOF){
putchar(c);
}
0670デフォルトの名無しさん
2010/10/20(水) 21:51:29do{
c = getchar();
} while(c != EOF && putchar(c));
とかになるんだろうけど、
軽くバッドノウハウかな。
while(c != EOF && putchar(c) != EOF);
とすればputchar(c)のエラー処理と言えなくもないけど、
条件が作用を伴うのはあまり良い作法とは思わない。
0671デフォルトの名無しさん
2010/10/20(水) 21:52:16http://codepad.org/
にソース添付したら間違いを指摘しやすいよ
0672デフォルトの名無しさん
2010/10/20(水) 21:53:30ヘタくそは工夫するな。
0673デフォルトの名無しさん
2010/10/20(水) 23:43:250674デフォルトの名無しさん
2010/10/20(水) 23:51:320675デフォルトの名無しさん
2010/10/20(水) 23:54:59data.txt
-----
7 20
1 2 3 4 5 6 7
----
のような形式のファイルがあるとして(最初の7は、2行目の数の個数を表してます)、
int a, b, c[100];
の変数について、
a = 7
b = 20
c[0] = 1
c[1] = 2
....
となるように格納したいのですがどうしたら良いでしょうか。
FILE *fp;
fp = fopen(data.txt, "r");
if(fp == NULL){ puts("ERROR"); exit(-1);}
fscanf(fp, "%d %d", &a, &b);
こっから分かりません…。1行目のaの値により、2行目の数の個数が変わるあたりをどうしたらよいのか…。
0676デフォルトの名無しさん
2010/10/20(水) 23:59:01int i ;
for ( i = 0 ; i < a ; i++ ){
fscanf ( fp, "%d", &c[i] ) ;
}
0677デフォルトの名無しさん
2010/10/20(水) 23:59:580678デフォルトの名無しさん
2010/10/21(木) 00:17:590679デフォルトの名無しさん
2010/10/21(木) 00:22:49fscanfで出来ました!
ありがとうございました!
0680デフォルトの名無しさん
2010/10/21(木) 01:41:58その中の関数の仮引数を構造体にした場合は、A.cとB.cで
共通のヘッダーファイルを用意して、定義しておけばよいですか?
それ以外の方法もあれば教えてください
0681デフォルトの名無しさん
2010/10/21(木) 08:55:11基本的には公開情報だけをB.hに書いて、
A.cからそれをincludeすればいいと思います。
構造体に関してはちょっと問題が出る事あるけど、まぁ、とりあえずこれで。
0682デフォルトの名無しさん
2010/10/21(木) 12:27:58"入力文字列のアルファベットを全て大文字にして表示せよ"
の問題が分かりません。
0683デフォルトの名無しさん
2010/10/21(木) 12:33:580684デフォルトの名無しさん
2010/10/21(木) 12:35:00#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int main(int argc, char **argv)
{
char buf[256];
char *p;
scanf("%s", buf);
for (p = buf; *p != '\0'; p++) {
*p = toupper(*p);
}
printf("%s\n", buf);
return EXIT_SUCCESS;
}
直書き。コンパイル確認すらしてない。
0685682
2010/10/21(木) 13:00:48調べてみましたが落ちてるようです・・・
>>684さん
出来てました。ありがとうございます。
すいませんがあと一つだけ分からない問題があります。
"入力文字列に小文字のアルファベットが何文字含まれているか出力せよ"
あつかましくてすいません。
0686デフォルトの名無しさん
2010/10/21(木) 13:05:22ご案内します。こちらでございます。
http://hibari.2ch.net/test/read.cgi/tech/1286978599/l50
0687682
2010/10/21(木) 13:12:30見落としてたようです。
スレ違いな質問をしてすいませんでした。
0688デフォルトの名無しさん
2010/10/21(木) 14:47:040689デフォルトの名無しさん
2010/10/21(木) 14:49:24memcpy
0690デフォルトの名無しさん
2010/10/21(木) 16:26:04int型をchar型に変換するときに上位の0を簡単に表示させるにはどうしたらいいでしょうか?
今の状態だと、例えば
int a = 180 を char b にいれるのに
sprintf(b."「%5d」",a); とすると
「 180」 と出力されてしまいます。
これを 「00180」 と出力させたいです。
0691デフォルトの名無しさん
2010/10/21(木) 16:27:090692デフォルトの名無しさん
2010/10/21(木) 16:29:290693デフォルトの名無しさん
2010/10/21(木) 16:30:33%05dにすればいい
0694デフォルトの名無しさん
2010/10/21(木) 16:32:34解決しました。ありがとうございます!!
0695デフォルトの名無しさん
2010/10/21(木) 17:37:51#include <stdio.h>
int main(void)
{
int a, b, c;
int max;
printf("整数aの値:"); scanf("%d", &a);
printf("整数bの値:"); scanf("%d", &b);
printf("整数cの値:"); scanf("%d", &c);
max = a;
if (b > max) max = b;
if (c > max) max = c;
printf("最大値は%dです。\n", max);
return (0);
}
コマンドプロンプトで「最大値は〜です」が表示されずに コマンドプロンプトが終了してしまいます
また下のコードでも
#include <stdio.h>
int main(void)
{
printf("hello");
return 0;
}
でも文字が表示されずにコマンドプロンプトが終了してしまいます
どこか環境設定がおかしいのでしょうか?
0696デフォルトの名無しさん
2010/10/21(木) 17:46:34表示された直後に一瞬で終了するから内容を見る間がないだけだ
あなたのプログラムはprintfで表示した直後にreturnで終了しているのでその通りに動作しているというわけだ
0697デフォルトの名無しさん
2010/10/21(木) 17:47:440698デフォルトの名無しさん
2010/10/21(木) 17:48:10文字列のソートは済ましているので後は比較し削除するだけなのですが、
nextポインタをどの様に扱えばよいのか分かりません。
何方かご教授お願いします。
0699デフォルトの名無しさん
2010/10/21(木) 17:49:46そのアプリケーションの終了と同時にコマンドプロンプトは閉じるのが Windows の仕様
多分表示されてるんだけど、即閉じてるのでわからないだけ
スタートメニューからコマンドプロンプト開いて、
その窓へ向かって実行ファイルを D&D
[Enter]
してみそ
0700デフォルトの名無しさん
2010/10/21(木) 17:52:19残念だが、遅いよ。遅すぎるんだよw
>>698
あんたも説明が下手だな。具体例を提示してくれ。
いきなりnextポインタと言われてもなんのことやら。
0701デフォルトの名無しさん
2010/10/21(木) 18:01:220702デフォルトの名無しさん
2010/10/21(木) 18:01:44ありがとうございます。
0703デフォルトの名無しさん
2010/10/21(木) 18:01:540704デフォルトの名無しさん
2010/10/21(木) 18:35:19片方向リンクのリスト構造か?
struct node {
char a[16];
int b;
struct node* next;
} NODE;
みたいな感じの
0705デフォルトの名無しさん
2010/10/21(木) 18:46:57うん
0706デフォルトの名無しさん
2010/10/21(木) 18:49:00ふっほっ
0707デフォルトの名無しさん
2010/10/21(木) 20:04:53FF:00
0A:BF
これをC言語一行に直してみてくれ
0708デフォルトの名無しさん
2010/10/21(木) 22:18:200709デフォルトの名無しさん
2010/10/21(木) 22:21:55消す一個先を消す一個前につなげるだけでしょ
0710デフォルトの名無しさん
2010/10/21(木) 22:30:06削除前の順を維持したいのか重複削除を適用後の順を取り出したいのか適用後として空要素の順を何時何処の情報で並び替えるのか
0711デフォルトの名無しさん
2010/10/21(木) 22:39:26#include <stdio.h>
struct value_tag
{
int value1;
int value2;
char value3[64];
};
typedef struct value_tag value;
int main()
{
value_tag.value1 = 10;
printf("value_tag.value1 = %d",value_tag.value1);
}
やりたいことは構造体内にある変数value1に10を代入してそれを表示するんですが
いまいちうまく行かなくて・・・structだけ使えばいいじゃないかと思うかもしれませんが
どのように使うか理解しておきたくて。。。
ご教示お願いします
0712デフォルトの名無しさん
2010/10/21(木) 22:50:090713デフォルトの名無しさん
2010/10/21(木) 22:58:59(例1)
struct value_tag
{
int value1;
int value2;
char value3[64];
} ;
typedef struct value_tag value;
int main(){
value v ;
v.value1 = 10;
printf("value_tag.value1 = %d", v.value1) ;
}
(例2)
typedef struct value_tag
{
int value1;
int value2;
char value3[64];
} value;
int main(){
value v;
v.value1 = 10;
printf("value_tag.value1 = %d", v.value1);
}
0714デフォルトの名無しさん
2010/10/21(木) 23:08:35typedef HOGE HOGE;
struct HOGE{
};
ちゃんと名前空間が分かれてるんだから
いちいち tag とか _ とか付けてんじゃねーよボケ
0715デフォルトの名無しさん
2010/10/21(木) 23:10:21typedef HOGE HOGE;
↓
typedef struct HOGE HOGE;
興奮しすぎてミスった悪い。
0716デフォルトの名無しさん
2010/10/21(木) 23:13:37はあ?
0717デフォルトの名無しさん
2010/10/21(木) 23:16:13{
int value1;
int value2;
char value3[64];
} value;
で解決
0718711
2010/10/21(木) 23:35:29> value v;
このvってのが構造体変数で、valueが構造体タグ名で合ってますよね?
value_tagってのが何なのかわからないです
まずtypedef自体、構造体をコピーしているのか、名前を変えているのか良くわからない状況です
いろいろググったりしても、データ型に新しい名前をつけるものとしか出ず、チンプンカンプンです
0719デフォルトの名無しさん
2010/10/21(木) 23:36:370720デフォルトの名無しさん
2010/10/21(木) 23:41:180721デフォルトの名無しさん
2010/10/21(木) 23:48:450722デフォルトの名無しさん
2010/10/22(金) 00:02:290723デフォルトの名無しさん
2010/10/22(金) 00:07:120724デフォルトの名無しさん
2010/10/22(金) 00:14:050725デフォルトの名無しさん
2010/10/22(金) 00:14:31>>717で全部解決してるじゃなイカ
0726デフォルトの名無しさん
2010/10/22(金) 00:16:170727デフォルトの名無しさん
2010/10/22(金) 00:18:15プリプロセッス時に置き換える #define とは違って、コンパイル時まで名前は残る。
単に struct を省略したいだけの目的なら typedef なんか使わず C++ にでも行ったほうがいい。
0728デフォルトの名無しさん
2010/10/22(金) 00:19:150729デフォルトの名無しさん
2010/10/22(金) 00:26:34プロセス → プロセサ
プロセス →?→ プロセッサ
0730デフォルトの名無しさん
2010/10/22(金) 00:30:58だろ。
語尾の棒を省略するやつウゼエんだよ。
プリンター、ブラウザー、ポインター、ドライバー、
1文字省略したくらいで何が嬉しいの? 馬鹿なの?
そのクセ、「ハッカ」とか「コピ」とか言わねーんだからアホとしか言いようがない。
0731デフォルトの名無しさん
2010/10/22(金) 00:31:06日本語で考えるから混乱する。
process → processor
ss と重なる部分を促音で書く人もおればそうじゃないひともいるのだろう。
0732デフォルトの名無しさん
2010/10/22(金) 00:31:510733デフォルトの名無しさん
2010/10/22(金) 00:32:58辞書をひいたか?手元の辞書にはそれはない。
0734デフォルトの名無しさん
2010/10/22(金) 00:35:31自分で買えばベトナム産も選べるけど、加工品に使われてるものは選べないから困る。
ヤツハシとかどうなんだろうか。ニッキは好きなんだけどそれが不安で手が出せない。
0735デフォルトの名無しさん
2010/10/22(金) 00:37:06ネイティブの発音は日本人には「ゴォゴ(ル)」に聞こえる。
0736デフォルトの名無しさん
2010/10/22(金) 00:38:41英語でつづると -er -or になる部分は長音記号をつけないという決まりがあった。
これによると、「ハッカ」はあり得る。「コピ」は er, or で終わっていないのでありえない。
0737デフォルトの名無しさん
2010/10/22(金) 00:39:490738デフォルトの名無しさん
2010/10/22(金) 00:47:40http://www.jisc.go.jp/app/JPS/JPSO0020.html
Z8301 で観覧。
ドキュメント書く場合に結構この辺が絡む。
こちらも面白い。
http://ja.wikipedia.org/wiki/Wikipedia:%E5%A4%96%E6%9D%A5%E8%AA%9E%E8%A1%A8%E8%A8%98%E6%B3%95
0739デフォルトの名無しさん
2010/10/22(金) 00:52:540740デフォルトの名無しさん
2010/10/22(金) 01:27:13今後は伸ばすのが標準化するよ。
0741デフォルトの名無しさん
2010/10/22(金) 01:30:09デバッグー。
コンパイルー。
0742デフォルトの名無しさん
2010/10/22(金) 01:40:320743デフォルトの名無しさん
2010/10/22(金) 01:58:31マイコンピュータ(またはコンピュータ、コンピューター)を〜とか書くのまじめんどい
0744デフォルトの名無しさん
2010/10/22(金) 02:00:150745デフォルトの名無しさん
2010/10/22(金) 02:05:580746デフォルトの名無しさん
2010/10/22(金) 03:11:27国語審議会のとある長老のありがたき御意見だったという噂を耳にしたことがあります。それをJIS が鵜呑みにしてしまったとか。
マイクロソフトは長音記号を一律に復活してしまって、それはそれでもめてるらしいとか。
言文一致を前提にすると聞いたようにかいていい、ということになりますから正書法を定めるのはなかなかむずかしいですね。
0747デフォルトの名無しさん
2010/10/22(金) 03:12:36この人コピィ、って書く人ですね。
0748746
2010/10/22(金) 03:18:420749デフォルトの名無しさん
2010/10/22(金) 03:52:26コンピュータみたいに4文字以上になる場合は「ー」をつけないじゃなかったか
最近JISが変更されてコンピュータがコンピューターになったとか
0750デフォルトの名無しさん
2010/10/22(金) 10:25:04使えねー奴らだな
0751デフォルトの名無しさん
2010/10/22(金) 12:48:01ポインタの配列を渡すときは(**a)で良いんでしょうか?
0752デフォルトの名無しさん
2010/10/22(金) 12:59:52また配列の配列を渡すときはa[][],、(*a)[]という形で良いでしょうか?
0753デフォルトの名無しさん
2010/10/22(金) 13:01:590754デフォルトの名無しさん
2010/10/22(金) 13:05:090755デフォルトの名無しさん
2010/10/22(金) 13:44:00なんでも入るよ。
0756デフォルトの名無しさん
2010/10/22(金) 14:13:22サンクス
0757デフォルトの名無しさん
2010/10/22(金) 16:16:47うむ。
0758デフォルトの名無しさん
2010/10/22(金) 16:18:01どうもどうも
0759デフォルトの名無しさん
2010/10/22(金) 16:24:55うむうむ。
0760デフォルトの名無しさん
2010/10/22(金) 17:42:41実際に渡して見るんだ!
0761デフォルトの名無しさん
2010/10/22(金) 18:10:330762デフォルトの名無しさん
2010/10/22(金) 18:14:140763デフォルトの名無しさん
2010/10/22(金) 18:16:570764デフォルトの名無しさん
2010/10/22(金) 18:18:240765デフォルトの名無しさん
2010/10/22(金) 18:18:550766デフォルトの名無しさん
2010/10/22(金) 19:07:330767デフォルトの名無しさん
2010/10/22(金) 21:18:24実際に渡してみたら上手くいきました。
ありがとうございました。
0768デフォルトの名無しさん
2010/10/22(金) 21:24:14JIS もマイクロソフトに追従ですか
0769デフォルトの名無しさん
2010/10/22(金) 22:27:46ああいうのをを作るにはどのくらいの勉強が必要ですか?
入門書を何とか読み終えたのですが
やった問題もn乗を求めるとかファイル中の最高値を出力するとかだけで
これで何か作れと言われてもどうすればいいのかわからん状態です
0770デフォルトの名無しさん
2010/10/22(金) 22:35:170771デフォルトの名無しさん
2010/10/22(金) 22:39:56そこに書いてあるコードは入門書がちゃんとわかってるなら読めるはず
読めないならまだ入門書すらわかってないってこと
0772デフォルトの名無しさん
2010/10/22(金) 22:41:30そこまで行けたなら、もう作れるはずだよ。
わからんというなら、その作ろうとしてるものの構造を理解してないだけ。
とりあえず簡単なものから作ってみればいい。テキストエディターとか。
0773デフォルトの名無しさん
2010/10/22(金) 22:45:170774デフォルトの名無しさん
2010/10/22(金) 22:46:150775デフォルトの名無しさん
2010/10/22(金) 22:50:540776デフォルトの名無しさん
2010/10/22(金) 23:07:4114歳からはじめるC言語わくわくゲームプログラミング教室とかでDirectX使ってゲームでも作るよろし
0777デフォルトの名無しさん
2010/10/22(金) 23:14:440778デフォルトの名無しさん
2010/10/22(金) 23:20:46ゲームの本を探してパックマンやオセロ作ろうと思います
アルゴリズムの勉強にもなりそうですし
>>770
難しいですね・・・
>>774
プロキシ検索ソフトやメモ帳風ブラウザなど作りたいというか欲しいのがあります
現状のソフトでこれをああできたらいいのになあ・・という部分もあるので
0779デフォルトの名無しさん
2010/10/22(金) 23:21:37少なくともオレの場合はそうだった。
HWNDとか、UINTとか、HINSTANCEとか、おまえら何?って。
でもそれが何なのか、知る必要は(少なくとも今は)無いと知って、
そういうもんだと思って乗り切ったよ。
ある種の抽象化/隠蔽なんだよ。
0780デフォルトの名無しさん
2010/10/22(金) 23:24:400781デフォルトの名無しさん
2010/10/22(金) 23:26:34まぁDirectX初めて触るとかだったらまぁ良いけどな。
なんであんな名前にしたんだろw
0782デフォルトの名無しさん
2010/10/22(金) 23:27:560783デフォルトの名無しさん
2010/10/22(金) 23:28:59そうなんだけど、中学生のオレには分からなかったんだよw
つまり、unsigned intならunsigned intとすればいいのに、
なんでUINTなんてtypedefしているのか。
それ以前に、「おいおいC言語の本にねーよそんなの」状態だったけど。
0784デフォルトの名無しさん
2010/10/22(金) 23:32:330785デフォルトの名無しさん
2010/10/22(金) 23:33:420786デフォルトの名無しさん
2010/10/22(金) 23:35:42windowsの本買えよ。
0787デフォルトの名無しさん
2010/10/22(金) 23:47:11おま・・・amazonも無い時代だったんだよ。
田舎の本屋にWindowsプログラミングの本なんて無い。
VC4.0のわけの分からん分厚いマニュアルのサンプルとか、
BASICマガジンとか、そんくらいしかなかったんよ。
今思えば、東京の本屋にでも旅行しに行けばよかったかもな。
0788デフォルトの名無しさん
2010/10/23(土) 00:00:21俺は本来小指とかで叩くべき所も違う指で叩いてるからタイピングが遅いんだろうか?
0789デフォルトの名無しさん
2010/10/23(土) 00:10:10何を削除するといいんだっけ?
0790デフォルトの名無しさん
2010/10/23(土) 00:12:320791デフォルトの名無しさん
2010/10/23(土) 00:12:500792デフォルトの名無しさん
2010/10/23(土) 00:26:46何をいってる?
首筋のバイオチップにUSBつないでるからタイピングなんかしない。
むしろPC側のノイズがフィードバックしてノイズが聞こえるのが気になる。
冗談はさておき、おれはいわゆるホームポジションも知らずに慣れてしまったから
オレはオレ流なんだけど、それはそれでいいと思ってる。
例えば右手をマウスに移動する予定のあるポジションと、
そうでない場合とで違うんだ。無意識なんだけど。
おれにはそれが最適になっちまった。
0793デフォルトの名無しさん
2010/10/23(土) 00:30:190794デフォルトの名無しさん
2010/10/23(土) 00:31:120795デフォルトの名無しさん
2010/10/23(土) 00:39:55正式なホームポジションって、微妙にプログラマには向かないのかもな。
オレ流は、まあ普通だが左手の薬指か小指でSHIFT押しながらうつよ。
右手はT、G、Bあたりまで攻め入る。
いま調べたが、%とかは左でSHIFT、右手で5を押してるな。
これはね、emacsでreplaceするとき、
左手だけでSHIFT+ALT+5に無理があるからそうなったんだと思う。
やべー、無意識って怖い。
0796デフォルトの名無しさん
2010/10/23(土) 00:41:45右にもSHIFTあるだろw
/と隣同士じゃねーか。
それとも英語圏のKBDかい?
0797デフォルトの名無しさん
2010/10/23(土) 00:57:080798デフォルトの名無しさん
2010/10/23(土) 01:05:11禿同
0799デフォルトの名無しさん
2010/10/23(土) 01:07:05おれは右SHIFTを薬指で、_を中指で、ほぼ同時打ちしてる。
たぶん、右手が正式な打ち方より臨機応変なんだな。
0800デフォルトの名無しさん
2010/10/23(土) 01:09:22Capitals Lock を使う。
0801デフォルトの名無しさん
2010/10/23(土) 01:10:240802デフォルトの名無しさん
2010/10/23(土) 01:10:31それはそれで面倒
0803デフォルトの名無しさん
2010/10/23(土) 01:13:50CapsLock 効かないんだよな。
たぶん、暴発を防ぐための要らんお世話なんだとは思うが、
普通に使う人にとってはクソ仕様この上ない。
US 配列なら普通に押すだけで切り替えできるんだが。
0804デフォルトの名無しさん
2010/10/23(土) 01:14:12万が一、ものすごく長い大文字シンボルをうつときは、
小文字でうっちゃって後でemacsでupperにすると思う。
ホームポジションってマウスも無いワープロ時代の産物でしょ?
自分なりに臨機応変に工夫するしかないとおもうよ。
0805デフォルトの名無しさん
2010/10/23(土) 01:15:38へえ、知らんかった。Shift押しながらの切り替えだから面倒くさくて
0806デフォルトの名無しさん
2010/10/23(土) 01:15:46何の略なのかすらも知らなかったんだろうね。
0807デフォルトの名無しさん
2010/10/23(土) 01:19:430808デフォルトの名無しさん
2010/10/23(土) 01:21:48そういうのは全てOSがコントロールしてる。
ハードウェアの仕様じゃない。
CapsLockやNumLockのLEDのコントロールすらOS管理。
なので、OSによると思う。
0809デフォルトの名無しさん
2010/10/23(土) 01:23:21当時のは1キー分だけ離れてたんじゃなかったか?
[Caps][Ctrl][A][S][D][F]
みたいに。
0810デフォルトの名無しさん
2010/10/23(土) 01:23:310811デフォルトの名無しさん
2010/10/23(土) 01:26:17そんなことはみんな知ってるし聞いてない。
0812デフォルトの名無しさん
2010/10/23(土) 01:33:450813デフォルトの名無しさん
2010/10/23(土) 01:35:51出し惜しみすんなカス
0814デフォルトの名無しさん
2010/10/23(土) 01:37:01そんなことはみんな知ってるし聞いてない。
0815デフォルトの名無しさん
2010/10/23(土) 01:43:40そんな荒れる要素あったか?w
0816デフォルトの名無しさん
2010/10/23(土) 01:43:45「訊いてない」の方だろ?
FEPありなのに漢字もロクに書けないおまえの意見は訊いてない。いちばんね。
0817デフォルトの名無しさん
2010/10/23(土) 01:45:220818デフォルトの名無しさん
2010/10/23(土) 01:45:440819デフォルトの名無しさん
2010/10/23(土) 01:46:280820デフォルトの名無しさん
2010/10/23(土) 01:47:16そんなことはみんな知ってるし聞いてない。
0821デフォルトの名無しさん
2010/10/23(土) 01:49:000822デフォルトの名無しさん
2010/10/23(土) 01:52:16http://dictionary.goo.ne.jp/leaf/thsrs/11092/m0u/%E3%81%8D%E3%81%8F/
0823デフォルトの名無しさん
2010/10/23(土) 01:53:070824デフォルトの名無しさん
2010/10/23(土) 01:56:08そんなことはみんな知ってるし聞いてない。
0825デフォルトの名無しさん
2010/10/23(土) 01:56:470826デフォルトの名無しさん
2010/10/23(土) 01:58:01これ、流行るの?
0827デフォルトの名無しさん
2010/10/23(土) 01:59:00そんなことはみんな知らないし聞いてない
0828デフォルトの名無しさん
2010/10/23(土) 01:59:11!→。
0830デフォルトの名無しさん
2010/10/23(土) 02:05:31←→→P+K
0832デフォルトの名無しさん
2010/10/23(土) 02:13:110833デフォルトの名無しさん
2010/10/23(土) 02:13:55そんなことはみんな知ってるし聞いてない。
0834デフォルトの名無しさん
2010/10/23(土) 02:24:09http://dictionary.goo.ne.jp/leaf/thsrs/11092/m0u/%E3%81%8D%E3%81%8F/
0835デフォルトの名無しさん
2010/10/23(土) 02:44:16そんなことはみんな知ってるし聞いてない。
0836デフォルトの名無しさん
2010/10/23(土) 02:53:570837デフォルトの名無しさん
2010/10/23(土) 02:55:560839デフォルトの名無しさん
2010/10/23(土) 03:17:420841デフォルトの名無しさん
2010/10/23(土) 10:36:42↑↑AB
0842711
2010/10/23(土) 10:49:41>>717さんので解決しました。
答えてくださった方ありがとうございました
何度も書いてすいません
0843デフォルトの名無しさん
2010/10/23(土) 11:27:022chでタッチタイプできるって言ってる連中の9割以上は我流タッチタイプだろうな。
0844デフォルトの名無しさん
2010/10/23(土) 11:37:170845デフォルトの名無しさん
2010/10/23(土) 12:19:27http://gigazine.net/index.php?/news/comments/20100205_typing_zen/
0846デフォルトの名無しさん
2010/10/23(土) 12:23:110847デフォルトの名無しさん
2010/10/23(土) 12:25:580848デフォルトの名無しさん
2010/10/23(土) 12:28:590849デフォルトの名無しさん
2010/10/23(土) 12:54:220850デフォルトの名無しさん
2010/10/23(土) 12:58:440851デフォルトの名無しさん
2010/10/23(土) 13:26:12数打っていくうちに自然にそうなる。
0852デフォルトの名無しさん
2010/10/23(土) 13:31:590853デフォルトの名無しさん
2010/10/23(土) 13:35:44あとでホームポジション教わってキーにポッチがついてるのに感動したっけ
薬指は普通に使うけど親指と小指はスペースとかEnterとか周辺キー専用になってるな
あれ、ここなんのスレだっけ
0854デフォルトの名無しさん
2010/10/23(土) 14:22:00できる。
FILE構造体と fopen(), fclose(), その他 f*() 関数群を真似る
0855デフォルトの名無しさん
2010/10/23(土) 14:27:100856デフォルトの名無しさん
2010/10/23(土) 14:40:17一旦呼び出してサイズを手に入れてから、それをもとに領域確保して、あらためて本番の呼び出しを行う、
という作法は非常に剛健というか用心深いというか、そこまで徹底してるのには感服した。
0857デフォルトの名無しさん
2010/10/23(土) 14:49:160858デフォルトの名無しさん
2010/10/23(土) 16:30:43いつまで待たせんだべらんめい。
0859デフォルトの名無しさん
2010/10/23(土) 16:54:590860デフォルトの名無しさん
2010/10/23(土) 16:59:310861デフォルトの名無しさん
2010/10/23(土) 17:08:120862デフォルトの名無しさん
2010/10/23(土) 17:12:27僕はイーナム(^q^)
0863デフォルトの名無しさん
2010/10/23(土) 17:14:050864デフォルトの名無しさん
2010/10/23(土) 17:17:48定数の定義に使うだろ。
0865デフォルトの名無しさん
2010/10/23(土) 17:20:350866デフォルトの名無しさん
2010/10/23(土) 17:24:230867デフォルトの名無しさん
2010/10/23(土) 18:38:45この意味ってどういう意味? なんで米印がついてるの?
0868デフォルトの名無しさん
2010/10/23(土) 18:43:34stdio.h に定義されている構造体 FILE へのポインタ、という意味。
0869デフォルトの名無しさん
2010/10/23(土) 18:44:11char *b ;
と一緒
上記の意味もわからないようなら出直してきてください
0870デフォルトの名無しさん
2010/10/23(土) 18:45:09void cant(char *);
↑みたいな最後の米印の意味おしえて
0871デフォルトの名無しさん
2010/10/23(土) 18:47:29早いね
0872デフォルトの名無しさん
2010/10/23(土) 18:47:46void cant(char *c);
と一緒
プロトタイプ宣言の仮引数はあっても無くてもいい
0873デフォルトの名無しさん
2010/10/23(土) 18:58:47無いとき、悲しくなることがあるけどね…
qsrot(void*, size_t, size_t, int (*)(const void *, const void *));
要素数と1要素のサイズ どっちが先だー? って
# 仮引数名が実際の動作とは違う命名のトラップは論外として
0874デフォルトの名無しさん
2010/10/23(土) 18:58:52同じでそのまま出力されるんですか?戻り値なしで
0875デフォルトの名無しさん
2010/10/23(土) 19:02:590876デフォルトの名無しさん
2010/10/23(土) 19:17:03リファレンス読めばおk
0877デフォルトの名無しさん
2010/10/23(土) 19:25:44つまりdo_one()の意味をわかりやすく教えてほしいです
0878デフォルトの名無しさん
2010/10/23(土) 19:29:330879デフォルトの名無しさん
2010/10/23(土) 19:30:41↑これはなんで*が二個もあるんですか
0880デフォルトの名無しさん
2010/10/23(土) 19:32:420881デフォルトの名無しさん
2010/10/23(土) 19:34:080882デフォルトの名無しさん
2010/10/23(土) 19:35:34ポインターの配列を受け取るから。
0883デフォルトの名無しさん
2010/10/23(土) 19:36:520884デフォルトの名無しさん
2010/10/23(土) 19:41:43*argv[0] *argv[1] *argv[2] .......
こんな感じに考えていいですか
0885デフォルトの名無しさん
2010/10/23(土) 19:53:33変数のアドレスがポインタ(*)
変数のアドレスが格納されてるアドレスがダブルポインタ(**)
0886デフォルトの名無しさん
2010/10/23(土) 19:54:350887デフォルトの名無しさん
2010/10/23(土) 19:57:420888デフォルトの名無しさん
2010/10/23(土) 19:58:14うむ。
argv[0], argv[1]にはそれぞれアドレスが入っておる
0889デフォルトの名無しさん
2010/10/23(土) 20:09:22そらint型のときはint型のポインタ渡すけどさ〜
0890デフォルトの名無しさん
2010/10/23(土) 20:24:52#include <stdio.h>
void set_str(char* str) {
str = (char*)malloc(100);
strcpy(str, "abc");
}
int main(int argc, char **argv) {
char* str = NULL;
set_str(str);
printf("%s\n", str);
return 0;
}
0891デフォルトの名無しさん
2010/10/23(土) 20:26:04array[0]と0[array]のどちらでもarrayの0番目の要素にアクセスできますが、
これってどんな風に使い分けるんですか?
0892デフォルトの名無しさん
2010/10/23(土) 20:28:41mallocするならそれを返せよ、で終わるだろその例は
0893デフォルトの名無しさん
2010/10/23(土) 20:30:31後者は使うな!
0894デフォルトの名無しさん
2010/10/23(土) 20:34:290[array]は見た目がよくないな
[array]0にしなさい
0895デフォルトの名無しさん
2010/10/23(土) 20:35:34嫌だ
0896デフォルトの名無しさん
2010/10/23(土) 20:35:44x[i]は(*((x)+(i)))と等価と決められているから
嫌がらせ目的以外では使い分けるな
0897デフォルトの名無しさん
2010/10/23(土) 20:37:340898デフォルトの名無しさん
2010/10/23(土) 20:39:11B言語は型がワードしかなくてアドレスがワード単位だったからってことで。
0899デフォルトの名無しさん
2010/10/23(土) 20:40:16誰に対してだか知らんが規格読んで来い
0900デフォルトの名無しさん
2010/10/23(土) 20:43:090901デフォルトの名無しさん
2010/10/23(土) 20:46:48Xsort(void*, size_t, size_t, int (*)(const void *, const void *));
の実装はどんな感じなるんですか?
Xをq(急),b(泡),s(選)等にする時にするとき、ソートアルゴリズムも渡したいとき
はどうするんですか
0902デフォルトの名無しさん
2010/10/23(土) 20:49:12何を言っているんだお前は?
0903デフォルトの名無しさん
2010/10/23(土) 20:51:24禿同w
0904デフォルトの名無しさん
2010/10/23(土) 21:07:07使い分けせずにこっちだけを使っていくことにします。
ありがとうございました。
0905デフォルトの名無しさん
2010/10/23(土) 21:24:380906デフォルトの名無しさん
2010/10/23(土) 21:33:550907デフォルトの名無しさん
2010/10/23(土) 21:59:43かなり無駄だが
typedef int (*SortCmpFunc)(const void*, const void*);
typedef void (*SortImplementFunc)(void*, size_t, size_t, SotCmpFunc);
void Xsort(void *array, size_t num, size_t size, SortCmpFunc cmpFn, SortImplementFunc impFn)
{
(*impFn)(array, num, size, cmpFn);
}
0908デフォルトの名無しさん
2010/10/23(土) 22:03:12{
FILE *fp;
--argc; /* argv[0]の分だけ減らす*/
++argv; /* argv[0]を読み飛ばす*/
if (argc == 0) /* パラメータ無し */
do_one(stdin);/*標準入力を処理*/
else{
while (argc--){
if ((fp = fopen(*argv,"r")) == NULL)
cant(*argv);
do_one(fp);
fclose(fp);
argv++;
}
}
return (0);
} fclose(fp);
argv++;
}
}
return (0);
}
上のwhile (argc--){
はどういう条件なんですか
0909デフォルトの名無しさん
2010/10/23(土) 22:20:020910デフォルトの名無しさん
2010/10/23(土) 22:24:370911デフォルトの名無しさん
2010/10/23(土) 22:39:02!=0を補って読んでくれ
while (argc-- != 0) {
0912デフォルトの名無しさん
2010/10/23(土) 22:54:330913デフォルトの名無しさん
2010/10/23(土) 22:55:310914デフォルトの名無しさん
2010/10/23(土) 22:58:14規格にもそう書いてある
> An iteration statement causes a statement called the loop body to be executed repeatedly
> until the controlling expression compares equal to 0.
0915デフォルトの名無しさん
2010/10/23(土) 22:58:45printf("%d\n", ( 1==1 ));
printf("%d\n", ( 1==2 ));
これやってみれば解る。
0916デフォルトの名無しさん
2010/10/23(土) 23:11:14!=0を補って読んでくれ
while (argc-- != 0) {
!=にする意味がわかりません
elseではifの反対の条件をだせるんですか
0917デフォルトの名無しさん
2010/10/23(土) 23:15:380918デフォルトの名無しさん
2010/10/23(土) 23:15:390919デフォルトの名無しさん
2010/10/23(土) 23:24:49もともと while は「式の値が 0 以外のあいだ繰り返す」文です
!= 0 というのはあなたが読みやすいようにわざわざわかりやすくしているだけです
付けようが付けまいが while 文の意味は最初から変わっていません
0920デフォルトの名無しさん
2010/10/23(土) 23:31:38if ((fp = fopen(*argv,"r")) == NULL)
cant(*argv);
do_one(fp);
fclose(fp);
argv++;
argc--;
}
0921デフォルトの名無しさん
2010/10/24(日) 00:26:49++argv; /* argv[0]を読み飛ばす*/
if (argc == 0) /* パラメータ無し */
do_one(stdin);/*標準入力を処理*/
else{
while (argc--){
if ((fp = fopen(*argv,"r")) == NULL)
cant(*argv);
do_one(fp);
fclose(fp);
argv++;
}
}
return (0);
}
上whileが偽の場合だとどこの行に飛ぶんですか
0922デフォルトの名無しさん
2010/10/24(日) 00:30:500923デフォルトの名無しさん
2010/10/24(日) 00:31:070924デフォルトの名無しさん
2010/10/24(日) 00:35:270925デフォルトの名無しさん
2010/10/24(日) 00:37:030926デフォルトの名無しさん
2010/10/24(日) 00:37:540927デフォルトの名無しさん
2010/10/24(日) 00:38:460928デフォルトの名無しさん
2010/10/24(日) 00:40:060929デフォルトの名無しさん
2010/10/24(日) 00:40:350930デフォルトの名無しさん
2010/10/24(日) 00:50:52また次の文を実行するんじゃないの?
0931デフォルトの名無しさん
2010/10/24(日) 00:52:230932デフォルトの名無しさん
2010/10/24(日) 00:52:430933デフォルトの名無しさん
2010/10/24(日) 00:56:17{
if ((fp = fopen(*argv,"r")) == NULL)
cant(*argv);
do_one(fp);
fclose(fp);
argv++;
}
このひとまとまりが一文になるんですか
0934デフォルトの名無しさん
2010/10/24(日) 01:00:500935デフォルトの名無しさん
2010/10/24(日) 01:16:43ifの場合とwhileの場合の条件式の次の複文は
if(条件){複文、真のとき実行
}
じゃないですか それなのに>>921のwhile複文は
{
if ((fp = fopen(*argv,"r")) == NULL)
cant(*argv);
do_one(fp);
fclose(fp);
argv++;
}
こんなに長いです 偽のときどこに行くのかわからないです
0936デフォルトの名無しさん
2010/10/24(日) 01:16:540937デフォルトの名無しさん
2010/10/24(日) 01:21:52単に長さが違うだけで同じことではないのか
0938デフォルトの名無しさん
2010/10/24(日) 01:23:35お前の頭がわからない
0939デフォルトの名無しさん
2010/10/24(日) 01:28:08while文が偽ならば実行されない。
0940デフォルトの名無しさん
2010/10/24(日) 01:29:120941デフォルトの名無しさん
2010/10/24(日) 01:32:52if(条件){複文、真のとき実行 }←こんなふうになります{}の後にくるのは
偽の文です
上の場合whileの文は{}の次に}がきているのでわからないんですよ 教科書みても
ないんです
0942デフォルトの名無しさん
2010/10/24(日) 01:34:590943デフォルトの名無しさん
2010/10/24(日) 01:36:160944デフォルトの名無しさん
2010/10/24(日) 01:37:41cant(*argv); ここにくるのですか
じゃあifとwhileの複文は用途が違うということですね!?
0945デフォルトの名無しさん
2010/10/24(日) 01:41:130946デフォルトの名無しさん
2010/10/24(日) 01:41:480947デフォルトの名無しさん
2010/10/24(日) 01:49:12皆さんの熱意に感動しました それじゃあ おやすみ
0948デフォルトの名無しさん
2010/10/24(日) 01:50:10誰かもっと簡単なソース頼んだw
0949デフォルトの名無しさん
2010/10/24(日) 01:54:44do_one(stdin);
}
else{
while (argc--){
if ((fp = fopen(*argv,"r")) == NULL){
cant(*argv);
}
do_one(fp);
fclose(fp);
argv++;
} // while文を閉じる
} // elseを閉じる
return (0);
}
0950デフォルトの名無しさん
2010/10/24(日) 01:56:38while ( count ){
count-- ;
printf ( "%d\n", count ) ;
}
printf ( "発射!!!!\n" ) ;
0951デフォルトの名無しさん
2010/10/24(日) 02:07:12無限ループ乙
0952デフォルトの名無しさん
2010/10/24(日) 02:44:33--argc; /* argv[0]の分だけ減らす*/
++argv; /* argv[0]を読み飛ばす*/
if (argc == 0) /* パラメータ無し */
do_one(stdin);/*標準入力を処理*/
else{
while (argc--){ ←ここの行のargcは前の--argcを
if ((fp = fopen(*argv,"r")) == NULL) 引き継いでいるのですか?
cant(*argv); その場合-2されて、argc[1]の場合なら
do_one(fp); 個数0になりcantしてしまうのですが
fclose(fp);
argv++;
}
}
return (0);
}
0953デフォルトの名無しさん
2010/10/24(日) 02:51:04while (argc--) { は
while (argc != 0) { argc -= 1; と同じだよ
0954デフォルトの名無しさん
2010/10/24(日) 02:53:310955デフォルトの名無しさん
2010/10/24(日) 03:00:21argcが先に評価された後に-1されるんだよ。
0956デフォルトの名無しさん
2010/10/24(日) 03:02:120957デフォルトの名無しさん
2010/10/24(日) 03:03:26どっちも-1になるが代入の仕方が変わってくるそうですが
この文では=はありません
0958デフォルトの名無しさん
2010/10/24(日) 03:04:360959デフォルトの名無しさん
2010/10/24(日) 03:08:43つまり評価された後-1されてそれを繰り返して0になるわけですね
argv++;は配列のことを言っているのですか?
0960デフォルトの名無しさん
2010/10/24(日) 03:11:170961デフォルトの名無しさん
2010/10/24(日) 03:13:390962デフォルトの名無しさん
2010/10/24(日) 03:15:52夜遅くまで感謝 またわからないことあったらききにきます
0963次スレ
2010/10/24(日) 03:32:28★前スレ
C言語なら俺に聞け(入門編)Part 71
http://hibari.2ch.net/test/read.cgi/tech/1286717824/
★過去スレ
http://makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000
★教えて欲しいのではなく宿題を丸投げしたいだけなら
↓宿題スレ↓へ行ってください。
C/C++の宿題片付けます 141代目
http://hibari.2ch.net/test/read.cgi/tech/1286978599/
★C++言語については避けてください。C++対応明記スレへどうぞ
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
# 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること
# サイズが大きい場合は宿題スレのアップローダ等を利用してください
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
0964デフォルトの名無しさん
2010/10/24(日) 03:38:49今でも昔でも同じじゃねーよダラズ
0965デフォルトの名無しさん
2010/10/24(日) 03:53:140966デフォルトの名無しさん
2010/10/24(日) 06:46:540967デフォルトの名無しさん
2010/10/24(日) 08:32:390968デフォルトの名無しさん
2010/10/24(日) 08:33:44C言語なら俺に聞け(入門編)Part 72
http://hibari.2ch.net/test/read.cgi/tech/1287876803/
0969デフォルトの名無しさん
2010/10/24(日) 10:16:39乙
0970デフォルトの名無しさん
2010/10/24(日) 10:19:43#include <stdlib.h>
int main(int, char **);
void sub1();
void sub2();
void sub3();
int main(int argc, char **argv){
sub1();
printf("main\n");
sub2();
return(EXIT_SUCCESS);
}
void sub1(){
sub3();
printf("sub1 containing sub3\n");
return;
}
void sub2(){
printf("sub2\n");
return;
}
void sub3(){
return;
}
0971デフォルトの名無しさん
2010/10/24(日) 10:21:10これの
int main(int, char **);
void sub1();
void sub2();
void sub3();
↑ ここの部分はなぜ必要なのですか?
また、
int main(int argc, char **argv)
↑の引数の意味が分からないので教えてください
0972デフォルトの名無しさん
2010/10/24(日) 11:36:59書かなくてもいいかも
0973デフォルトの名無しさん
2010/10/24(日) 11:39:41return(EXIT_SUCCESS);
0974デフォルトの名無しさん
2010/10/24(日) 12:08:47#include <stdlib.h>
int main (int argc, char **argv)
{
puts ("Hello, world.") ;
return EXIT_SUCCESS ;
}
これ、何やってるんですか、教えてください。っていてるようなもん
0975デフォルトの名無しさん
2010/10/24(日) 12:20:29#include <stdlib.h>
int main (int argc, char **argv)
{
puts ("Hello, world.") ;
return EXIT_SUCCESS ;
}
これ、何やってるんですか、教えてください。
0976デフォルトの名無しさん
2010/10/24(日) 12:38:46http://ja.wikipedia.org/wiki/Hello_world%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%AE%E4%B8%80%E8%A6%A7#C
0977デフォルトの名無しさん
2010/10/24(日) 12:54:29何が違うの?ご教授願いたい
0978デフォルトの名無しさん
2010/10/24(日) 13:04:100979デフォルトの名無しさん
2010/10/24(日) 13:05:270980デフォルトの名無しさん
2010/10/24(日) 13:09:43正しい結果が得られません。CPU自体は計算可能なのでアセンブラならできる
らしいのですがなぜC言語だと出来ないのですか。
0981デフォルトの名無しさん
2010/10/24(日) 13:11:530982デフォルトの名無しさん
2010/10/24(日) 13:13:20128bitの型のあるコンパイラなの?
0983デフォルトの名無しさん
2010/10/24(日) 13:15:22三人分の名前・年齢・性別を出力するプログラムを作ったのですがよくわからないので教えてください
http://codepad.org/2rkZc0oQ
11,12行目のvoid〜とあるのですがvoid型は値を返すことができないと聞いたのですが普通に動作しました
あと構造体配列を関数に渡すやり方?がよくわかってないので
例えば関数として呼び出すときにinputf(data[])、かぎかっこをつけるとコンパイルが通らなくなります
なのにvoid〜とする場合にはなぜ[]をつけなければいけないのかよくわかっていません
どなたか助けてください・・・
0984デフォルトの名無しさん
2010/10/24(日) 13:18:28GCC4.3.4を使っています。計算するためには何が必要か教えてください。
現状では計算ができないのであれば、具体的な対応策(PCやOSを変えるなど)
を教えてください。よろしくお願いします。
0985デフォルトの名無しさん
2010/10/24(日) 13:21:31> アセンブラならできる
って、自分で言ってるじゃん
0986デフォルトの名無しさん
2010/10/24(日) 13:25:15が知りたいです。128ビットの型があるかどうかわh
0987デフォルトの名無しさん
2010/10/24(日) 13:31:040988デフォルトの名無しさん
2010/10/24(日) 13:31:15演算まで面倒は見れくれないと思う
ま、代替え関数でもあれば、アセンブラ使わないですむけど、俺はしらん
具体的にやりたいこと書いてgccスレで聞いた方がいいかも
0989デフォルトの名無しさん
2010/10/24(日) 13:32:52http://ideone.com/aLq6H
>void型は値を返すことが
何も返してないし何か問題でも
>[]
仮引数の配列は全てポインタとして扱われる
void outputf(value data[]);
void outputf(value *data);
は同一
>呼び出すときにinputf(data[])
配列はポインタへの暗黙変換があるので
inputf(data);
は
inputf(&data[0]);
として扱われる
0990デフォルトの名無しさん
2010/10/24(日) 13:42:41お使いのコンパイラでは int 型 が 64ビットとか128ビットになっていないせいかもしれません。
コンパイラがなにか教えてください。
0991デフォルトの名無しさん
2010/10/24(日) 13:45:490992デフォルトの名無しさん
2010/10/24(日) 13:49:350993デフォルトの名無しさん
2010/10/24(日) 13:56:300994デフォルトの名無しさん
2010/10/24(日) 13:56:490995デフォルトの名無しさん
2010/10/24(日) 14:03:47copy 001.txt 適当なフォルダ
以下略
0996デフォルトの名無しさん
2010/10/24(日) 14:12:020997デフォルトの名無しさん
2010/10/24(日) 14:25:578bit*8bit=16bitはかけ算使わないでCで書いたことあるんかね
0998デフォルトの名無しさん
2010/10/24(日) 14:27:400999デフォルトの名無しさん
2010/10/24(日) 14:41:16Cで書きたいっていってるから
inline asmだと違うやり方になるけど、かけ算して結果128bitになる命令があるなら
1000デフォルトの名無しさん
2010/10/24(日) 14:44:3510011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。