【初心者歓迎】C/C++室 Ver.94【環境依存OK】©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん 転載ダメ©2ch.net
2014/11/29(土) 19:42:42.55ID:H7nG43zBただしその場合、質問者は必ず環境を書きましょう。
※sage禁止です(と代々スレに書いてありますが自己判断で)。
◆ソースのインデントについて
半角空白やTABでのインデントはスレに貼ると無くなります。
そのため、アップローダーに上げるのも手ですが直接貼る場合は、
全角空白か に置換すると見栄えだけはよくなります。
前スレ
【初心者歓迎】C/C++室 Ver.93【環境依存OK】
http://peace.2ch.net/test/read.cgi/tech/1412495628/
【アップローダー】(質問が長い時はココ使うと便利)
http://codepad.org/ (コンパイルもできるし出力結果も得られる[]privateをチェック)
http://ideone.com/ (時間帯によってはcodepadが重い事があるのでここも利用)
0002デフォルトの名無しさん
2014/11/29(土) 19:44:22.78ID:H7nG43zB0003デフォルトの名無しさん
2014/11/29(土) 23:13:28.80ID:SoXvwZNw,,イ`" 、-' `;_' ' ..::::::::::::::...
,-、 _.._ ( (,(~ヽ'~ ..:::::::::::::::::::::::
)'~ レー' 〉 ヽ i`'} .:::::::::::::::::::::::
~つ '-ー、 i | i' ...:::::::::::::::::::::::
/ < / 。/ ! ......::::::::::::::::::::::::: これは>>1乙じゃなくて
/ ~^´ /},-'' ,●::::::::::::::::::::::::::::::::::::
i、 ,i' _,,...,-‐-、/ i :::::::: .:::::::::::::
..ゝ <,,-==、 ,,-,/ .::::::::::: 放射能がうんたら
) {~''~>`v-''`ー゙`'~ ..::::::::: ........::.
{ レ_ノ ..::::::::. ......:::::::::
ノ '' ..::::::: ...::.:...:::::::::
.::::::::: ...:......:::::::::::: .
.:::::::::::. ..... .. ..:::::::::::::::::::::::: :::.
::::::::::::::::.::::::....:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.. :: ::..
.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::: ::.
::::::::::::::::: :::::::::::::::::::::::::::::: :::::
.:: ::. :::
0004デフォルトの名無しさん
2014/11/30(日) 06:09:05.70ID:b4nmdqGs0005デフォルトの名無しさん
2014/11/30(日) 06:56:47.16ID:pAK1rqmE0006ほげ
2014/11/30(日) 07:37:44.89ID:Ub6DvR6ohoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
0007デフォルトの名無しさん
2014/11/30(日) 09:08:31.64ID:nOpZCiXZ漏れは片目失明したからもう楽しめないけど
0008デフォルトの名無しさん
2014/11/30(日) 13:35:39.71ID:d9djmG8Vhoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
0009デフォルトの名無しさん
2014/11/30(日) 14:01:44.04ID:Q44JDfrW0010デフォルトの名無しさん
2014/11/30(日) 14:06:14.12ID:Rv000YfS0011デフォルトの名無しさん
2014/11/30(日) 14:08:59.56ID:Rv000YfS荒らしなの?
0012デフォルトの名無しさん
2014/11/30(日) 14:26:02.25ID:eT2GHNAm0013ほげ
2014/11/30(日) 14:40:07.27ID:eFKzysBlhoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
0014デフォルトの名無しさん
2014/11/30(日) 15:10:15.58ID:NCWbzOJi先発のこっちを先に利用しましょう
ttp://peace.2ch.net/test/read.cgi/tech/1417179292/
0015デフォルトの名無しさん
2014/11/30(日) 15:19:19.34ID:WgNYlXPXhoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
0016デフォルトの名無しさん
2014/11/30(日) 16:15:29.17ID:5l1eAk1d0017デフォルトの名無しさん
2014/12/01(月) 09:45:51.05ID:ikZ1X/ON0018デフォルトの名無しさん
2014/12/01(月) 23:32:04.67ID:ckayckOThoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
0019デフォルトの名無しさん
2014/12/04(木) 00:01:43.61ID:R9AAXdvt0020デフォルトの名無しさん
2014/12/06(土) 09:49:48.00ID:TVnq4wFE0021デフォルトの名無しさん
2014/12/06(土) 10:59:57.00ID:8e1EU+sD彼はそこからベテルへ上ったが、上って行く途中、小さい子供らが町から出てきて彼をあざけり、
彼にむかって「はげ頭よ、のぼれ。はげ頭よ、のぼれ」と言ったので、 彼はふり返って彼らを見、主の名をもって彼らをのろった。すると林の中から二頭の雌ぐまが出てきて、その子供らのうち四十二人を裂いた。
0022デフォルトの名無しさん
2014/12/07(日) 06:40:22.10ID:kfpI/dd20023デフォルトの名無しさん
2014/12/07(日) 15:51:03.26ID:8AVYz9y5http://image.donga.com/pictorial/uData/201402/140216_pop/0001.jpg
http://dimg.donga.com/wps/SPORTS/IMAGE/2014/02/16/60918897.2.jpg
http://radio1230.com/wp-content/uploads/2014/02/950400090221.jpg
0024デフォルトの名無しさん
2014/12/07(日) 16:23:48.53ID:O9ZKS+UT誰がhageなの?
0025デフォルトの名無しさん
2014/12/07(日) 21:32:52.73ID:qKVX4M2Cフサフサなスコットメイヤーがハゲに刺されるのも時間の問題
0026デフォルトの名無しさん
2014/12/08(月) 21:44:55.72ID:83jQwhKtclass Aの中でpublicにtypdefしてる型をclass Bの中で使いたい。
class A {
public:
typdef MY_TYPE int;
...
};
class A;
class B {
...
A::MY_TYPEを使いたい
...
};
class Aの中のtypedef型をclass Bで宣言する方法を教えてください。
0027デフォルトの名無しさん
2014/12/08(月) 21:45:42.81ID:iz8A3eDihttp://blog-imgs-38.fc2.com/l/a/o/laos2008/Jun08Skorearest.jpg
http://www.jiji.com/news/handmade/topic/d4_beauty/nko001-A67P0564.jpg
http://www.jiji.com/news/handmade/topic/d4_kk/nko625-SGR20141128_1001.jpg
http://japanese.joins.com/upload/images/2014/09/20140923092552-1.jpg
0028デフォルトの名無しさん
2014/12/08(月) 22:07:36.22ID:5zqyBEmlclass Common {
public:
typedef MY_TYPE int;
};
… A.h …
class B;
class A : public Common {
};
… B.h …
class A;
class B : public Common {
};
0029デフォルトの名無しさん
2014/12/09(火) 20:43:12.28ID:F1td69O/http://pix.avaxnews.com/avaxnews/70/07/00000770_medium.jpeg
0030デフォルトの名無しさん
2014/12/10(水) 20:59:12.57ID:Bk/1VpOFhttp://img.yaplog.jp/img/15/pc/y/a/m/yamu98/19/19888.jpg
0031デフォルトの名無しさん
2014/12/10(水) 21:28:37.76ID:PoGTwE5c0032デフォルトの名無しさん
2014/12/11(木) 21:21:26.48ID:4ETHF6Fphttp://cwcontent.asiae.co.kr/amgimagelink/0/2009110822310365330_1.jpg
http://cwcontent.asiae.co.kr/amgimagelink/0/2009110822310365330_2.jpg
http://cwcontent.asiae.co.kr/amgimagelink/0/2009110822320567893_1.jpg
http://cwcontent.asiae.co.kr/amgimagelink/0/2009110822320567893_2.jpg
0033デフォルトの名無しさん
2014/12/13(土) 06:41:13.39ID:bOLXsmE9http://pds.joins.com/news/component/newsen/201402/06/201402060806303410_1.jpg
http://contents.innolife.net/mobile/img/item/178805_l.jpg
0034デフォルトの名無しさん
2014/12/13(土) 07:30:09.25ID:KcZztYF+0035デフォルトの名無しさん
2014/12/13(土) 09:06:02.77ID:SQgyoVwB0036デフォルトの名無しさん
2014/12/14(日) 00:39:54.44ID:z532gSNKttp://stat.news.ameba.jp/news_images/20120807/22/64/89/j/o078805250_169511.jpg
ttp://snsdkorean.files.wordpress.com/2009/06/snsd7.jpg
ttp://stat.news.ameba.jp/news_images/20120127/11/4a/1f/j/o078805250_29035.jpg
ttp://www.bunkatsushin.com/images/varieties/1681/1_b.jpg
ttp://kimchionnamatome.net/wp-content/uploads/bikakujidaiH1.jpg
0037デフォルトの名無しさん
2014/12/14(日) 23:19:51.77ID:Tt2IEpnW0038デフォルトの名無しさん
2014/12/15(月) 01:12:02.73ID:3UbQ6XqYfor(〜;〜;++){}でまわせばいいだけでは?
0039デフォルトの名無しさん
2014/12/15(月) 01:15:02.44ID:DDIABndf効率的なforを書くのが面倒だったり、書けるとしても長くなってしまったりするとき
0040デフォルトの名無しさん
2014/12/15(月) 01:15:27.97ID:aYRUZIwr一回も使った時ねー
0041デフォルトの名無しさん
2014/12/15(月) 01:24:55.26ID:EZkZoVoc0042デフォルトの名無しさん
2014/12/15(月) 05:17:49.41ID:BV1c1+4qfor_eachの方が、forより情報量が少ないから、
考えることが減り、バグが減る
つまり、人にやさしく、効率的、エコ
0043デフォルトの名無しさん
2014/12/15(月) 07:02:26.00ID:jixZIJsCコレクションの全ての要素に対してループを回したい時。
通常のforだと開始条件はともかく終了条件を間違えてバグる時があるけど、
特にコレクションの場合は、その要素全てに対してループを回すことが目的だから、
条件式とかを排除してシンプルにループを回す構文
0044デフォルトの名無しさん
2014/12/15(月) 07:07:01.90ID:jixZIJsCC#の例で書くと、
foreach(int val in collection)
これでint配列の要素を1つずつvalに取り出して処理することが出来る。
forだと、
for(int i=0; i<100; i++)
int val = collection[i]
のような冗長な記述になってしまうよな
0045デフォルトの名無しさん
2014/12/15(月) 11:45:06.28ID:yMEZ5G45それ以外の強力なイテレータ系関数を学ぶための布石だと俺は思ってる
0046デフォルトの名無しさん
2014/12/15(月) 12:02:17.13ID:6+rjsbMUスクリプト系では添字使わないほうが標準的では?
コンピュータにとってもとくにスクリプト系では手間が減って早くなる。
0047デフォルトの名無しさん
2014/12/15(月) 12:16:36.47ID:yMEZ5G45ただ、for_eachの挙動が解ってると、同ヘッダ内の
他の関数の挙動が凄く分かり易くなるっていう大事な関数だとも思う
0048デフォルトの名無しさん
2014/12/15(月) 12:17:46.11ID:z/cTXs7Nイテレータの内部実装を直接利用した効率的な処理を行える可能性がある
実際にそうしてる環境があるのかはしらん
0049デフォルトの名無しさん
2014/12/15(月) 18:05:44.27ID:scyQtu+8C++でも for (int val : collection) とできるが
0050デフォルトの名無しさん
2014/12/15(月) 19:20:07.01ID:/SsCOr8K0051デフォルトの名無しさん
2014/12/15(月) 20:22:04.45ID:Ieh2V7Xe0052デフォルトの名無しさん
2014/12/15(月) 21:50:54.32ID:mI1D61eZ速さが求められるところだけピンポイントで直せばいい
0053デフォルトの名無しさん
2014/12/16(火) 00:10:30.26ID:Cfrd/RN/for_each(hoge.begin(),hoge.end,
でも上限間違えたりするじゃん
使う理由がわからん
0054デフォルトの名無しさん
2014/12/16(火) 06:35:16.40ID:eY5iqPnRああすまん、>>49 の方な
0055デフォルトの名無しさん
2014/12/17(水) 17:11:59.47ID:COoHLGo1005655
2014/12/17(水) 17:18:57.14ID:COoHLGo1これ出来ないですね...すいません...
では、クラス内部にシングルトンがあって
そのクラスをnew、インスタンス取得、deleteした時は
どうなりますか?
0057デフォルトの名無しさん
2014/12/17(水) 17:31:35.74ID:cvokdp9c0058デフォルトの名無しさん
2014/12/17(水) 17:33:38.64ID:cm6ENvAyコードで示せ
0059デフォルトの名無しさん
2014/12/17(水) 17:37:23.02ID:T8Ls5WMeそのクラスをnewしようがdeleteしようがどうにもならん
006055
2014/12/17(水) 18:37:18.58ID:COoHLGo1{
private:
cSingleton(){}
cSingleton( const cSingleton& );
cSingleton& operator=( const cSingleton& );
public:
~cSingleton(){}
static cSingleton* GetInstance()
{
static cSingleton instance;
return &instance;
}
};
class c_A
{
public:
cSingleton c_singleton;
};
void amain()
{
c_A* class_a = new c_A;
class_a->c_singleton.GetInstance();
delete class_a;
}
こんな感じです...
いろいろ間違ってたらごめんなさい
0061デフォルトの名無しさん
2014/12/17(水) 18:42:58.82ID:cm6ENvAy(そういう機構で複数の cSingleton インスタンス生成をブロックしてるのだ)
0062デフォルトの名無しさん
2014/12/17(水) 18:49:29.65ID:cm6ENvAyシングルトンはプログラムで1個しかインスタンスがないようにするような概念なので
class のメンバーに シングルトンのインスタンスそのものを持つのが失敗
(だって、その class は複数生成できるんだし シングルトンの思想と合わない
0063デフォルトの名無しさん
2014/12/17(水) 18:54:26.06ID:T8Ls5WMe指し示すインスタンスは同じなんだから問題ないだろう
0064デフォルトの名無しさん
2014/12/17(水) 19:27:34.27ID:vdnkzoecttp://livedoor.blogimg.jp/gurigurimawasu/imgs/3/2/320afc21.jpg
ttp://4.bp.blogspot.com/-KM6fSU_jQsY/T5KipoC7eBI/AAAAAAAAKw0/Yxx56VmNZm8/s1600/6108521539_9314ab87bc_z.jpg
ttp://pic1.dbw.cn/0/01/03/21/1032174_829786.jpg
ttp://img.recordchina.co.jp/imgout.php?m=5&img=cfp429374577-01.jpg
0065デフォルトの名無しさん
2014/12/18(木) 00:22:11.63ID:Uqt7V8ws>>59が言ってることが全て
あるクラスのstaticメンバ関数内のstaticローカル変数もそのクラスのインスタンスとは無関係
これはそのクラスのインスタンスが他のクラスのメンバとして間接的に生成されようが変わりはない
0066デフォルトの名無しさん
2014/12/19(金) 22:30:00.12ID:2K3D2OJ2http://imagec.navi.com/images/templates/SEOUL/5016469/70919_2_S2.jpg
http://farm3.static.flickr.com/2569/3794465937_15cc70fabc.jpg
http://livedoor.blogimg.jp/gurigurimawasu/imgs/c/3/c369b387.jpg
http://tbs-blog.com/data/original/11/11347/WAnP4pPmWn.jpg
0067デフォルトの名無しさん
2014/12/21(日) 13:15:49.76ID:qyurmby2ttp://4.bp.blogspot.com/-dSSjCy3hd-8/UmFaEyAkmBI/AAAAAAAAAUw/VLnFmi6o34A/s1600/%E3%82%B8%E3%82%A7%E3%82%B7%E3%82%AB%E7%B6%B2%E3%82%BF%E3%82%A4%E3%83%8420131018.jpg
ttp://stat.ameba.jp/user_images/20121031/10/hanagepi/c4/34/j/o0480077712263170088.jpg
ttp://jpimages.kpopstarz.com/data/images/full/20295/image.jpg
ttp://img.yaplog.jp/img/04/pc/s/n/s/snsd_lina/1/1218.jpg
0068デフォルトの名無しさん
2014/12/22(月) 17:31:56.20ID:j0bYujz9http://livedoor.blogimg.jp/stylencafe/imgs/6/a/6a114bfd.png
http://livedoor.blogimg.jp/tokyodisney/imgs/5/1/515a9fb0.jpg
0069デフォルトの名無しさん
2014/12/23(火) 16:34:07.86ID:BpxozoLahttp://blog-imgs-49.fc2.com/s/o/s/soshi21/120116lg3dtv.jpg
0070デフォルトの名無しさん
2014/12/23(火) 21:45:28.98ID:mkqiMGUu0071デフォルトの名無しさん
2014/12/25(木) 22:12:56.64ID:WJoNsl3Wttp://blog-imgs-59.fc2.com/d/e/l/deliciousicecoffee/20130914085514f19.jpg
0072デフォルトの名無しさん
2014/12/28(日) 09:19:00.74ID:PJZx/kFz0073デフォルトの名無しさん
2014/12/29(月) 19:24:56.53ID:r0z0pjqC0074デフォルトの名無しさん
2015/01/01(木) 22:42:33.53ID:WpoOzY+l工作員乙。
0075デフォルトの名無しさん
2015/01/01(木) 22:55:13.90ID:yLqkBpeG0076デフォルトの名無しさん
2015/01/02(金) 10:40:41.12ID:x5V6gXqF0077デフォルトの名無しさん
2015/01/02(金) 21:39:19.49ID:sgAmTW3I0078デフォルトの名無しさん
2015/01/05(月) 00:01:10.84ID:jTekFFMy0079デフォルトの名無しさん
2015/01/08(木) 21:50:10.85ID:C+vEDWRT0080デフォルトの名無しさん
2015/01/14(水) 21:48:22.89ID:Cvxvn+jNhttp://news.music.biglobe.ne.jp/files/47/51/1326/20100826135147_0.jpg
http://pbs.twimg.com/media/BhuOSy9CYAA_2L-.jpg
http://image.space.rakuten.co.jp/lg01/43/0000003843/83/imgca1c679dzik4zj.jpeg
http://www.25ans.jp/var/25ansjp/storage/images/beauty/feature/beauty_0128/week3/012/68708-1-jpn-JP/_1_rect521.jpg
0081デフォルトの名無しさん
2015/01/18(日) 23:38:46.34ID:sBYXL+NFhttp://kankoku-seoul.jp/wp/wp-content/uploads/2014/03/201403142051592010_1.jpg
http://images.japanese.kpopstarz.com/data/images/full/82202/dal-shabet-dream-concert-2014.jpg
0082デフォルトの名無しさん
2015/01/26(月) 00:10:10.25ID:we+Cyu0Mhttp://trizine.co.kr/article/images/20130706222858.jpg
http://trizine.co.kr/article/images/20130706213237.jpg
http://www.trizine.com/article/images/20131001010958.jpg
http://www.trizine.com/article/images/20131001011010.jpg
0083デフォルトの名無しさん
2015/02/01(日) 00:17:55.43ID:kDowXL8L0084デフォルトの名無しさん
2015/02/01(日) 20:36:15.83ID:dvKbzDCNhttp://blog-imgs-60-origin.fc2.com/f/u/n/funnyoubenki/20130524222038974.jpg
http://blog-imgs-60-origin.fc2.com/f/u/n/funnyoubenki/20130524222037a32.jpg
http://blog-imgs-60-origin.fc2.com/f/u/n/funnyoubenki/2013052422203653c.jpg
http://blog-imgs-60-origin.fc2.com/f/u/n/funnyoubenki/20130524222202051.jpg
0085デフォルトの名無しさん
2015/02/01(日) 20:45:14.62ID:s/hXDQXD0086デフォルトの名無しさん
2015/02/01(日) 20:55:31.31ID:Oy9MlKBGグロ
0087デフォルトの名無しさん
2015/02/01(日) 20:56:29.20ID:b1Drc9W3韓国系荒し
0088デフォルトの名無しさん
2015/02/03(火) 21:34:35.61ID:UghEvQ+40089デフォルトの名無しさん
2015/02/04(水) 07:58:02.83ID:PCkywKWCグロ
0090デフォルトの名無しさん
2015/02/04(水) 10:27:15.51ID:+U2BPPPkDie, Die, Die!
0091デフォルトの名無しさん
2015/02/07(土) 09:05:07.28ID:fxm+xPTB0092デフォルトの名無しさん
2015/02/11(水) 22:26:02.10ID:gsU54+VGhttp://www.kbsworld.ne.jp/_data/bbskorea/p_1366635152.jpg
0093デフォルトの名無しさん
2015/02/14(土) 09:54:59.60ID:grXdfziLhttp://imagec.navi.com/images/templates/SEOUL/5016661/80704_6.jpg
0094デフォルトの名無しさん
2015/02/14(土) 14:22:02.19ID:iia+5DIuhttp://peace.2ch.net/test/read.cgi/tech/1417179292/
の次スレ?w
0095デフォルトの名無しさん
2015/02/14(土) 14:55:18.58ID:Zwqn9ydg【初心者歓迎】C/C++室 Ver.95【環境依存OK】 [転載禁止]2ch.net
http://peace.2ch.net/test/read.cgi/tech/1423872914/
0096デフォルトの名無しさん
2015/02/14(土) 15:28:44.80ID:iia+5DIu誘導ありがとう
0097デフォルトの名無しさん
2015/02/15(日) 01:38:23.17ID:VN/XGnmYhttp://kankoku-seoul.jp/wp/wp-content/uploads/2014/03/201403142045592010_1.jpg
0098デフォルトの名無しさん
2015/02/15(日) 22:11:11.62ID:rMyrVCeThttp://www.newscham.net/data/news/photo/14/42942/rektx003.jpg
http://www.peace-forum.com/korean/weekly/weeklyphoto/2006/061002-3.jpg
http://maokapostamt.img.jugem.jp/20080913_307211.jpg
0099デフォルトの名無しさん
2015/02/19(木) 00:02:16.65ID:NPRawGvX0100デフォルトの名無しさん
2015/02/21(土) 21:45:34.53ID:gN2F2Lilttp://livedoor.blogimg.jp/ghistory/imgs/b/9/b981b070.jpg
0101デフォルトの名無しさん
2015/02/22(日) 06:50:03.45ID:JC6bv7QJ0102デフォルトの名無しさん
2015/02/22(日) 23:15:05.44ID:q2RiS+Za0103デフォルトの名無しさん
2015/02/25(水) 19:10:49.73ID:jcpQjetKOSはwindows7です。
とりあえずCygwinをインストールするところから初めました。
そしてCygwinのターミナルから
cmake .
make install
とすると、fdopenの関数が見つからないというエラーが出ました。
fdopenは今は<stdio.h>には無いとのことで、<cstdlib> <cstdio>をインクルードしましたが
やはりエラーはなくなりませんでした。
fdopenを書き換えること等は出来るのでしょうか。
0104片山博文MZ ◆T6xkBnTXz7B0
2015/02/25(水) 19:15:48.65ID:mKx2rGPvundefine __STRICT_ANSI__ before compiling:
$ g++ -std=c++11 -U__STRICT_ANSI__ foo.cpp
0105デフォルトの名無しさん
2015/02/25(水) 20:02:10.03ID:yKEcxS/ohttp://cphoto.asiae.co.kr/listimglink/6/2009110822301563048_2.jpg
http://cphoto.asiae.co.kr/listimglink/6/2009110822341673963_1.jpg
http://cphoto.asiae.co.kr/listimglink/6/2009110822341673963_2.jpg
http://cphoto.asiae.co.kr/listimglink/6/2009110822364681078_2.jpg
http://cphoto.asiae.co.kr/listimglink/6/2009110822374683665_1.jpg
http://cphoto.asiae.co.kr/listimglink/6/2009110822384888639_1.jpg
http://cphoto.asiae.co.kr/listimglink/6/2009110822384888639_2.jpg
http://cphoto.asiae.co.kr/listimglink/6/2009110822392991867_1.jpg
http://cphoto.asiae.co.kr/listimglink/6/2009110822392991867_2.jpg
http://hbbsimg.imgcss.com/newsbbs/cnt_star/200911/cnt_star091111090939084.jpg
http://dqnplus.6.ql.bz/cgi-bin/img-box/img20111009104941.jpg
0106デフォルトの名無しさん
2015/02/25(水) 22:25:58.89ID:9Jue4yk2http://imgur.com/Uz0vevJ.jpg
http://imgur.com/Dk6yFb6.jpg
0107デフォルトの名無しさん
2015/03/08(日) 12:31:08.61ID:E5onmAznhttp://i.imgur.com/DI6LBt9.gif
0108デフォルトの名無しさん
2015/03/15(日) 23:13:11.78ID:N62PgpuLprintf("%s%s\n",texts[0],texts[1]);
printf("%s%s%s\n",texts[0],texts[1],texts[2]);
上記で
PRINT(texts,2);が2行と
PRINT(texts,3);が3行と同じ意味になるようなマクロってかけますか?
0109デフォルトの名無しさん
2015/03/16(月) 14:14:32.98ID:gG+hG0qKマクロ必須?
文字列を返す関数ならすぐ思い付くけど。
0110デフォルトの名無しさん
2015/03/16(月) 14:23:05.68ID:+9zbWvUS関数じゃダメなのかな
void PRINT(char **t, int n)
{
int i;
for (i = 0; i < n; i++)
printf("%s", t[i]);
printf("\n");
}
0111デフォルトの名無しさん
2015/03/16(月) 19:27:23.79ID:oGjevCAQnは可変ですが、コンパイル時に決定する値ですので
実行時に作成するのは無駄ですよね?
0112デフォルトの名無しさん
2015/03/16(月) 19:52:59.50ID:+9zbWvUS0113デフォルトの名無しさん
2015/03/16(月) 20:59:32.64ID:oGjevCAQそれでもいいです
0114デフォルトの名無しさん
2015/03/16(月) 22:10:10.11ID:bhsTaUEk#define PRINT(n) n==0 ? printf("%s\n", texts[n]) : \
n==1 ? printf("%s%s\n", texts[n-1],texts[n]) : \
n==2 ? printf("%s%s%s\n", texts[n-1],texts[n-1],texts[n]) : \ (つづく)
c99, c11, はループ使えるのかな?
0115デフォルトの名無しさん
2015/03/16(月) 22:25:09.31ID:qhZtmSQN#include <boost/preprocessor/repeat.hpp>
#define EMIT_FMT_S(_z, _n, _t) "%s"
#define EMIT_TEXTS(_z, _n, _t) ,_t[_n]
#define PRINT( _T, _N) printf( BOOST_PP_REPEAT(_N, EMIT_FMT_S, 0) "\n" BOOST_PP_REPEAT(_N, EMIT_TEXTS, _T) );
0116デフォルトの名無しさん
2015/03/17(火) 12:07:00.08ID:uo2kZQF6上記コードはVisual C++ 17やgcc 4.1.1では問題なくビルドできたのですが、
clang 3.4だと
call to function 'operator<' that is neither visible in the template definition nor found by argument-dependent lookup
といったコンパイルエラーが発生してしまいます。
operator <をFoo名前空間に移動すれば発生しないのですが
グローバルの名前空間に置いたままコンパイルを通す方法はないでしょうか?
0117デフォルトの名無しさん
2015/03/17(火) 14:13:37.33ID:PrY9Rxngttp://codepad.org/uZOyzJoU
0118デフォルトの名無しさん
2015/03/17(火) 16:49:02.70ID:07oTgRoY0119デフォルトの名無しさん
2015/03/17(火) 19:35:39.03ID:uo2kZQF6理屈はよくわからないのですがそれで行けました。
ありがとうございます。
0120デフォルトの名無しさん
2015/03/22(日) 15:30:18.47ID:ljCp5GrRint *p = NULL;
delete p;
やはり
if(p) delete p;
とすべきでしょうか?
0121デフォルトの名無しさん
2015/03/22(日) 15:39:08.20ID:Cl7axnxPこれは。
if(p){
delete p;
p = NULL;
}
0122片山博文MZ ◆T6xkBnTXz7B0
2015/03/22(日) 15:43:43.56ID:KcTTsKQ+delete (int*)NULL;
には、なんの効果もない。C++FAQを読め。
0123デフォルトの名無しさん
2015/03/22(日) 16:00:48.95ID:ljCp5GrRであれば
>>121の主張はどうだよ
回答する側だからっていってその口調がゆるされるなら
質問する側だってこれでいいよな
0124デフォルトの名無しさん
2015/03/22(日) 16:24:54.05ID:p1Ry3I+w> if(p)がtrueでもdelete可能ではないのでは?
そうだね。
> if(p){
> delete p;
> p = NULL;
> }
"if(p)" は不要。 "p = NULL" も不要かもしれない。
っていうか今時 delete なんて書かずに unique_ptr 使ってよ。
0125デフォルトの名無しさん
2015/03/22(日) 16:31:59.68ID:Cl7axnxPMEM31-C. 動的に割り当てられたメモリは一度だけ解放する
C セキュアコーディングスタンダード > 08. メモリ管理 (MEM)
https://www.jpcert.or.jp/sc-rules/c-mem31-c.html
メモリの二重解放回避テク - akihiko’s tech note
http://d.hatena.ne.jp/aki-yam/20081205/1228490763
0126デフォルトの名無しさん
2015/03/22(日) 16:41:43.22ID:ljCp5GrR0127デフォルトの名無しさん
2015/03/22(日) 16:49:16.06ID:p1Ry3I+wその想定でも話は変わらないでしょ。
>>126
そうでもないよ。仕事でも使うし。
むしろ仕事で胡散臭い delete バラまかれるほうがマズいな。
0128デフォルトの名無しさん
2015/03/25(水) 00:46:47.20ID:KfwtEOZYまた、FooImplクラスがあります。
class Foo
{
FooImpl* pFooImpl_;
}
みたいなコードを見かけました。
これだけならなんとも思わないんですが、コメントに
Fooはインターフェイスを定義して実装はFooImplとかいてあります。
class Foo : public FooImpl{};
とはどう違うのでしょうか?
コメントの内容からすると継承でいいような気がするんですが・・・
0129デフォルトの名無しさん
2015/03/25(水) 01:24:22.45ID:zHgovz26pImplイディオムを実装してたんじゃないの
0130デフォルトの名無しさん
2015/03/27(金) 00:45:48.18ID:nRohh0XSbar<int>();
}
で<int>はfooの仮引数の型と同じ場合
aはコンパイル時にintと分かっているため、下記のような書き方ってできませんか?
void foo(int a){
bar<〜(a)>();
}
0131デフォルトの名無しさん
2015/03/27(金) 05:05:10.71ID:oqD21NWS0132デフォルトの名無しさん
2015/03/27(金) 12:11:47.05ID:5M8nXgvoc言語でポインタに関してなんですが、
基本的に
・別関数に構造体を渡す際に高速化をはかる
・関数ポインタ
・動的なメモリ確保
以外どのような場合に使われるのでしょうか?
あと配列とポインタの関係に関して以下の認識で宜しいでしょうか?
int main()
{
int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int* p = a;
for(int i=0; i<10; ++i)
printf("a[%d] = %d p[%d] = %d\n", i, a[i], i, p[i]);
for(int i=0; i<10; ++i)
*(p+i) = i*10;
printf("\n");
for(int i=0; i<10; ++i)
printf("a[%d] = %d p[%d] = %d\n", i, a[i], i, p[i]);
return 0;
}
0133デフォルトの名無しさん
2015/03/27(金) 12:46:20.20ID:oqD21NWS「スコープを越えたところのデータを変更する」ことができる
例えばローカル変数のアドレスを関数に渡して、関数側からローカル変数の内容を変更することが可能
数値だとそこまで有用ではないが、構造体だと結構使うと思う
0134デフォルトの名無しさん
2015/03/27(金) 13:16:15.70ID:5M8nXgvoなるほど目から鱗です
ありがとうございます!
0135デフォルトの名無しさん
2015/03/27(金) 15:40:29.11ID:MiCUmk6I動的確保や解放の回数を減らせる
文字列用にサイズ512の2つの領域が欲しい場合
char *buff, *str1, *str2, *str12[2];
buff = malloc(512 * 2);
str1 = &buff[0];
str2 = &buff[512];
str3[0] = &buff[0];
str3[1] = &buff[512];
free(buff);
0136デフォルトの名無しさん
2015/03/27(金) 18:20:31.86ID:nRohh0XS解決しました。
0137デフォルトの名無しさん
2015/03/27(金) 19:07:46.69ID:HyXqDr8qほとんど133の言い換えだけど、scanfみたいに複数の値を返す関数で使う
あと、strstrみたいな文字列の途中を指すとき
それと、今はあんまりないかもしれないけど、組み込み系で外部デバイスの直接アクセスに使ったり
0138デフォルトの名無しさん
2015/03/28(土) 00:01:54.60ID:Ruzh6H/h0139デフォルトの名無しさん
2015/03/28(土) 00:51:58.60ID:dShmB10Qありがとうございます
0140デフォルトの名無しさん
2015/03/28(土) 04:03:56.96ID:vFtQyJKT(ポインタ + 1)は、(配列のインデックス + 1)と同じ。
つまり、その変数のサイズ分 + 1。
例えば、32bit int型なら、+4バイト
Python,Rubyでは多重代入できるから、
複数の戻り値を、受け取れる
f(){
return a, b, c
}
x, y, z = f()
一方、Cでは、構造体のポインタ渡しで、
複数の戻り値を、構造体に詰めて、受け取る
f(*in, *out){
}
0141デフォルトの名無しさん
2015/03/28(土) 05:59:17.76ID:dbhzLQ6NメモリマップドI/Oのアドレスを保持する とか
0142デフォルトの名無しさん
2015/03/28(土) 06:52:04.36ID:LZ/SArZZなんでアドレスが欲しいのか知らんが、たいていの処理系ではポインタを
それより大きい整数型にキャストすればアドレスが得られる。
0143デフォルトの名無しさん
2015/03/28(土) 06:59:44.17ID:p+oUvV+Tこういうことがしたいのか?
http://peace.2ch.net/test/read.cgi/tech/1313183984/754
0144デフォルトの名無しさん
2015/03/28(土) 07:46:54.56ID:JCsZnGie第二引数は改行を入れた最大文字数ということですが
基本的に処理系の誤差を考慮しなければ第一引数のサイズ-1でよいですか?
0145デフォルトの名無しさん
2015/03/28(土) 07:54:47.43ID:MC5n48Fa0146デフォルトの名無しさん
2015/03/28(土) 08:09:50.74ID:JCsZnGiefgetsです
0147デフォルトの名無しさん
2015/03/28(土) 08:31:44.30ID:MC5n48Fa自動的に付けてくれる最後のヌル文字含めて、第2引数のサイズに収めてくれるから
第1引数のサイズそのままでok
0148デフォルトの名無しさん
2015/03/28(土) 09:30:09.74ID:JCsZnGieありがとうございます
0149デフォルトの名無しさん
2015/03/28(土) 10:20:56.03ID:wGIVv2vy0150デフォルトの名無しさん
2015/03/28(土) 11:04:58.24ID:bxfGXCYrhttp://i.imgur.com/TA9wPXo.jpg
http://i.imgur.com/kavWD4E.jpg
http://i.imgur.com/d8XsHMp.jpg
http://i.imgur.com/WmewDAv.jpg
http://i.imgur.com/1MIm5Ol.jpg
http://i.imgur.com/1MIm5Ol.jpg
http://i.imgur.com/vnHYQJr.jpg
http://i.imgur.com/9r8Xa18.gif
http://i.imgur.com/3e4omB5.jpg
0151デフォルトの名無しさん
2015/03/28(土) 11:57:46.96ID:H3aO2GITグロ
0152デフォルトの名無しさん
2015/03/28(土) 12:42:18.01ID:Ruzh6H/hやってみてからレスしようね
0153デフォルトの名無しさん
2015/03/28(土) 23:36:39.55ID:OBpeY7QN#include "DxLib.h"
#include "Administrator.h"
class Player{
public:
Player(int *tmpKey,Administorator*);
~Player();
void update(){
if (*(key + KEY_INPUT_W) > 0) y -= vy;
if (*(key + KEY_INPUT_S) > 0) y += vy;
if (*(key + KEY_INPUT_A) > 0) x -= vx;
if (*(key + KEY_INPUT_D) > 0) x += vx;
DrawGraph(x, y, img, TRUE);
}
private:
int *key;
int img;
int x, y, vx, vy;
};
Player::Player(int *tmpKey,Administorator *admin){
key = tmpKey;
img = LoadGraph("img/Player.png");
x = 0;
y = 0;
vx = 5;
vy = 5;
}
とすると指定された型と一致するオーバーロードされた関数"Player::Player"のインスタンスが見つかりませんと言われます。なぜでしょうか?
OSは Windows 8.1 、IDEは Visual studio 2013 Community を使っています
0154デフォルトの名無しさん
2015/03/29(日) 00:23:38.81ID:M18I0Bq+0155デフォルトの名無しさん
2015/03/29(日) 02:20:26.73ID:xlKwV1Bo> public:
> Player(int *tmpKey,Administorator*);
↓
Player(int *tmpKey,Administorator*admin);
では?
0156デフォルトの名無しさん
2015/03/29(日) 02:45:49.81ID:M18I0Bq+このスレのレベルが露呈されるような書き込みだなw
0157デフォルトの名無しさん
2015/03/29(日) 03:15:52.80ID:zb3TpvJQそれか質問をよく読んでいない
0158デフォルトの名無しさん
2015/03/29(日) 03:28:53.04ID:XfQU9N1R0159デフォルトの名無しさん
2015/03/29(日) 03:56:14.46ID:xlKwV1Bo> Player(int *tmpKey,Administorator*);
でも良いんだろうけどVisual studio 2013 Communityでしょ?
MSってなんでやねんって独自規格多いでしょ。
だから試しに>>155を提案してみたんだよ
0160デフォルトの名無しさん
2015/03/29(日) 04:31:33.77ID:M18I0Bq+質問する側だとヤフレだの、過去レス漁れだの
始まるんだがなW
0161デフォルトの名無しさん
2015/03/29(日) 06:15:38.70ID:XfQU9N1R質問するならエラー内容も番号含めた正確な文字列を張りましょうね
0162デフォルトの名無しさん
2015/03/29(日) 06:26:33.36ID:XfQU9N1Rせっかくコンパイラがエラー出してもそれが出てる行数すら理解出来ないようだし。
0163デフォルトの名無しさん
2015/03/29(日) 08:16:18.66ID:xqo1VVEChttp://i.imgur.com/yrceaRP.jpg
http://i.imgur.com/eILmYeO.jpg
http://i.imgur.com/nshCzrj.jpg
http://i.imgur.com/A7Su8lK.jpg
http://i.imgur.com/vnTmVTH.jpg
http://i.imgur.com/oeXN9CR.jpg
http://i.imgur.com/FdzBqD9.jpg
0164デフォルトの名無しさん
2015/03/29(日) 11:31:28.80ID:G6/MuzBY配列の要素数を得るには
ex).
int array[10];
int max = sizeof(array)/sizeof(array[0]);
でしたよね
そこで
多次元配列の要素数を得るには
ex).
int array[2][10],
max1 = sizeof(array)/sizeof(array[0]),
max2 = sizeof(array[0])/sizeof(array[0][0]);
でよろしいでしょうか?
0165デフォルトの名無しさん
2015/03/29(日) 11:35:05.04ID:ozqnLQRj#define max 9
じゃ嫌なの?(´・ω・`)
0166デフォルトの名無しさん
2015/03/29(日) 11:35:25.92ID:QlYaDaYV0167デフォルトの名無しさん
2015/03/29(日) 11:45:26.15ID:G6/MuzBYそれだと関数に配列(のポインタ)を渡したとき
渡した先の関数で配列の要素数をチェックできないから
0168デフォルトの名無しさん
2015/03/29(日) 11:48:31.91ID:iKqWd88Kいまだに定数にdefine使う低能は
プログラミングに携わるべきではない
0169デフォルトの名無しさん
2015/03/29(日) 11:49:47.96ID:G6/MuzBY分割コンパイルしたくて関数を別のソースファイルに記述するつもりなんだが
配列をグローバル変数化したくなくて出来ることならあまりexternも頻繁に利用したくないから
関数に配列のポインタを渡して渡した先の関数で要素数を得られるようにしたいってことで
>>164で問題ないかな?
0170デフォルトの名無しさん
2015/03/29(日) 11:50:38.77ID:G6/MuzBYそれは場合によりけりなんじゃ...
0171デフォルトの名無しさん
2015/03/29(日) 11:54:05.68ID:PCcOtM3Jポインタだけ渡したら>>164の方法で要素数を求めることはできないぞ
0172デフォルトの名無しさん
2015/03/29(日) 11:57:08.00ID:ozqnLQRj{/: :/: :/:::::::::::::::::/: : : : : / : : : : : : : : : : : : : . \:::::::::::::::/
/: : : : : : /:::::::::::::::::::{ : : : : /: : : : : : : : : : : : : : : :\ \:::::::::!
/: : /: : : ∧:::::::::::::::::/: : : : /:/: : : : :/ : : : /: : :i: : : :i: ヽ \::}
イ : : : /: : : /:::::\:::::::::/: : :|: : :/:_: : //: : :/∧ : |: : : |: : :} 、 > ___
∠: :/: : :/: { : : /::::::::::| \:/: :|: :|: :イj´: :.//: : :// }: :| ⌒iヽ : : . 丶 / \
/: : :/ : |: : /::::::::::::|: |: : : : !: :!// j:/ {: : // !: :| : : !: : : : : : ! ヽ/ そ そ お
. /: : :/: : :|: :/::::::::::::::|y: : : : :|: :|/ ィチ云ヽ|ノ jハノ__V : : : :}: : |\| う う .前
/:| : /: : : :|:/:::::::::::::::::|r |: :i : |: :l/ /iilllliii} イill| ヾハ: :/: : :ト、 な 思 が
{人∧: : : :|:\r-、::::::::|:(|: :| : |: :| {illlliiiill! {ill|} ∧/: : :|ヽ ん う
| : : /: : : :Γ ̄`、.|: :| : |: :| ゙==''" 弋ノ /: |::\: :.}'つ だ ん
V |: : : :リ: : :∧: |ハ| :|:.l ヘヘヘヘヘ ’ヘヘヘ/: /|_ イヽト:ゝ ろ な /
i: : :/ V V ヽ |: :.ト 、-―-, / :/: : : :| ゝ う ら /
|/ /^メ、: | ー `~ "_ , イ |: :/|∧: :/ / く
/:::::::::::ヽ!´"'':ー-....._ ̄ {/ V |V V i で お |
/:::::::r/⌒\:::::::::::::::〉 | は 前 |
{:::::/ \≧"ヽ | な .ん |
/ \ ト、 \ 中 /
0173デフォルトの名無しさん
2015/03/29(日) 11:58:08.49ID:G6/MuzBYやっべそうでした思い出しました(汗
引数に要素数渡さないといけませんでしたね
ありがとうございました
0174デフォルトの名無しさん
2015/03/29(日) 12:06:57.40ID:G6/MuzBYsizeofするのが正しいとは思うけど、あまりsizeofばっかやっても逆にみづらい場合もあるよね
やっぱりこれって適切な場合によって使いわかるべきだよね ケースバイケースなのかね...
0175デフォルトの名無しさん
2015/03/29(日) 12:25:28.14ID:ozqnLQRjC/C++ではね。だから、わかっているなら
#define CNT 10
#define MAX (CNT-1)
の方が優れているよ?(´・ω・`)
0176デフォルトの名無しさん
2015/03/29(日) 12:28:41.62ID:XfQU9N1RCはまだしもC++までそんな糞と一緒にしないでください
0177デフォルトの名無しさん
2015/03/29(日) 12:42:05.55ID:ozqnLQRj/: : : : : __: :/: : ::/: : ://: : :/l::|: : :i: :l: : :ヽ: : :丶: : 丶ヾ ___
/;,, : : : //::/: : 7l,;:≠-::/: : / .l::|: : :l: :|;,,;!: : :!l: : :i: : : :|: : ::、 / ヽ
/ヽヽ: ://: :!:,X~::|: /;,,;,/: :/ リ!: ::/ノ l`ヽl !: : |: : : :l: :l: リ / そ そ お \
/: : ヽヾ/: : l/::l |/|||llllヾ,、 / |: :/ , -==、 l\:::|: : : :|i: | / う う 前 |
. /: : : //ヾ ; :|!: イ、||ll|||||::|| ノノ イ|||||||ヾ、 |: ::|!: : イ: ::|/ な 思 が
/: : ://: : :ヽソ::ヽl |{ i||ll"ン ´ i| l|||l"l `|: /|: : /'!/l ん う
∠: : : ~: : : : : : : :丶ゝ-―- , ー=z_ソ |/ ハメ;, :: ::|. だ ん
i|::ハ: : : : : : : : : : : 、ヘヘヘヘ 、 ヘヘヘヘヘ /: : : : : \,|. ろ な
|!l |: : : : : : : : :、: ::\ 、-―-, / : : :丶;,,;,:ミヽ う ら
丶: :ハ、lヽ: :ヽ: : ::\__ `~ " /: : ト; lヽ) ゝ
レ `| `、l`、>=ニ´ , _´ : :} ` /
,,、r"^~´"''''"t-`r、 _ -、 ´ヽノ \ノ / お ・
,;'~ _r-- 、__ ~f、_>'、_ | で 前 ・
f~ ,;" ~"t___ ミ、 ^'t | は ん ・
," ,~ ヾ~'-、__ ミ_ξ丶 | な 中 ・
;' ,イ .. ヽ_ ヾ、0ヽ丶 l /
( ;":: |: :: .. .`, ヾ 丶 ! \____/
;;;; :: 入:: :: :: l`ー-、 )l ヾ 丶
"~、ソ:: :い:: : \_ ノ , ヾ 丶
0178デフォルトの名無しさん
2015/03/29(日) 12:56:21.64ID:XfQU9N1Rおう、俺の中ではお前はこれ以上話を聞く価値のない底辺プログラマーだ。喜べ
0179デフォルトの名無しさん
2015/03/29(日) 13:12:45.23ID:ozqnLQRj0180デフォルトの名無しさん
2015/03/29(日) 14:32:10.95ID:zb3TpvJQint a[7][10];
_countof(a) = 7
_countof(a[0]) = 10
0181デフォルトの名無しさん
2015/03/29(日) 16:37:48.75ID:zb3TpvJQそういえば
>>154で知らないと言っておきながら他の回答者に理由も提示せず突っ込むだけとか
過去に質問して何かあったのか?
0182デフォルトの名無しさん
2015/03/29(日) 17:02:34.41ID:M18I0Bq+0183デフォルトの名無しさん
2015/03/30(月) 00:06:14.59ID:aL6fCSSB0184デフォルトの名無しさん
2015/03/30(月) 13:23:02.41ID:p5EATsYz#include <stdio.h>
int main()
{
void display1(void);
void display2(void);
void display3(void);
void (*p_display[])(void) = {display1, display2, display3 };
int size = sizeof(p_display)/sizeof(p_display[0]);
for(int i=0; i<size; ++i)
p_display[i]();
return 0;
}
void display1(void)
{
printf("display1\n");
return;
}
void display2(void)
{
printf("display2\n");
return;
}
void display3(void)
{
printf("display3\n");
return;
}
0185デフォルトの名無しさん
2015/03/30(月) 14:15:28.41ID:z87f6/oyややこしくなったら typedef 通すとよいよ
tyoedef void (*FUNC_PTR)(void);
FUNC_PTR p_display[] = {
... 以下同じ
0187デフォルトの名無しさん
2015/03/30(月) 18:05:04.68ID:+8902R/bsizeof(p_display)/sizeof(p_display[0])
は定数なのでforの終了判定に直接書いた方が良い。
0188デフォルトの名無しさん
2015/03/30(月) 18:18:22.39ID:AKJsrmAN0189デフォルトの名無しさん
2015/03/30(月) 19:54:09.85ID:AKJsrmAN→_countof(p_display);
これでもいける
0190デフォルトの名無しさん
2015/03/30(月) 20:03:28.64ID:Z/xNzUYFint main()
{
int a[1000][1000][200][2];
char c;
std::cin >> c;
}
上記を実行してもタスクマネージャの「メモリ」が増えないのはなぜですか?
1.6GB上昇すると思っているのですが・・・
0191デフォルトの名無しさん
2015/03/30(月) 20:10:41.32ID:AKJsrmAN0192デフォルトの名無しさん
2015/03/30(月) 20:12:10.61ID:0nFGZg2Oけど、Windowsっぽい前提で
そのコードだと 最適化で消えうせる
実際にアクセスするまではコミットされてない
0193デフォルトの名無しさん
2015/03/30(月) 20:15:19.17ID:Z/xNzUYFでも増えない理由は?
0194デフォルトの名無しさん
2015/03/30(月) 20:24:05.69ID:AKJsrmANforループ回して全配列の値をprintfするようにしてみ
stack overflowになるんじゃね
0195デフォルトの名無しさん
2015/03/30(月) 20:31:33.45ID:Z/xNzUYF0196デフォルトの名無しさん
2015/03/30(月) 20:47:48.01ID:AKJsrmAN0197デフォルトの名無しさん
2015/03/30(月) 20:50:49.17ID:Z/xNzUYF0198デフォルトの名無しさん
2015/03/30(月) 22:19:43.30ID:srztvLsH話したくない
0199デフォルトの名無しさん
2015/03/30(月) 22:31:00.27ID:Z/xNzUYF0200デフォルトの名無しさん
2015/03/31(火) 02:56:36.21ID:Mf+Rrt9Zhttps://www.google.co.jp/search?q=%22as+if%22+rule
0201デフォルトの名無しさん
2015/03/31(火) 20:04:50.51ID:o9lmMpx3変数に関しては
variable.c
int var = 10;
main.h
#include <stdio.h>
extern int var;
main.c
#include "main.h"
int main()
{
printf("%d", var);
return 0;
}
として問題ありませんが、構造体の場合は
0202デフォルトの名無しさん
2015/03/31(火) 20:05:18.76ID:o9lmMpx3struct.h
typedef struct{ int num1, num2; }__counter;
struct.c
#include "struct.h"
__counter s_counter;
void cntInit(){ s_counter.num1 = s_counter.num2 = 0; }
main.h
#include <stdio.h>
#include "struct.h"
void cntInit();
extern __counter s_counter;
main.c
#include "main.h"
int main()
{
cntInit();
printf("num1 = %d num2 = %d", s_counter.num1, s_counter_num2);
return 0;
}
のようにヘッダファイルに構造体を定義しないといけませんよね?(この場合ではstruct.h)
(上記ではあまり意味の無いプログラムですが... ちなみにインクルードガードについては理解しています)
0203デフォルトの名無しさん
2015/03/31(火) 20:12:30.35ID:jIkoyFTKmain.h の立ち位置がよくわからない
二つの .c の仲立ちを基本一つの .h で行うとおもうんだが、そのコード main.h, struct.h のどちらかを省くことはできないのか?
0204デフォルトの名無しさん
2015/03/31(火) 20:20:24.29ID:o9lmMpx3>main.hの立ち位置がよくわからない
すみませんポイントはそこではなく(上記のプログラムは意味の無いものなので)
ようは構造体をexternしたい場合ってソースファイルではなくヘッダファイルに構造体
を定義しないとコンパイル通りませんよね?(c++ではヘッダにclassを定義するのが定石ですし)
上記の場合では
main.h
extern s_counterのs_counterはstruct.hに定義しないとエラーになりますし
(自分で質問してて意味わからなくなってきた笑
0205デフォルトの名無しさん
2015/03/31(火) 20:26:44.63ID:GaynNCnDextern int var;
int が 構造体である struct { int num1, num2 } に置き換わればおっけー
変数の実体を置くときに型の名前が欲しくなるので typedef (A) か 名前つき構造体 (B) にする
さらに、色々なソースでメンバを直接操作させたいのなら、ヘッダ上に定義も置く
(A)
main.h
typedef struct { int num1, num2 } counter_t; /* (A) */
extern counter_t var;
main.c
counter_t var;
(B)
main.h
extern struct counter_tag { int num1, num2 } var;
main.c
struct counter_tag var;
0206デフォルトの名無しさん
2015/03/31(火) 20:27:05.81ID:o9lmMpx3構造体を定義したヘッダファイルを用意するのが普通ですよね
0207デフォルトの名無しさん
2015/03/31(火) 20:27:06.30ID:o9lmMpx3構造体を定義したヘッダファイルを用意するのが普通ですよね
0209デフォルトの名無しさん
2015/03/31(火) 20:30:44.78ID:o9lmMpx3ありがとうございます解決しました!
0210デフォルトの名無しさん
2015/03/31(火) 20:32:15.65ID:GaynNCnD追補 構造体のポインタをグローバルにするなら
構造体の定義は見えなくて良い
が、実際にメンバをアクセスするソースでは定義が欲しい
stdio.h 中の FILE 型がどうなってるかみてみると興味深いよ
fopen で FILEのポインタ返して
fread とかで FILEのポインタ渡して
とやるけど、FILE *fp; fp->あれこれ のように構造体のメンバアクセスさせることはない
0211デフォルトの名無しさん
2015/03/31(火) 20:38:53.75ID:ytppRCf1ソースが1つなんて30年前に書いたくらいだな
0212デフォルトの名無しさん
2015/03/31(火) 20:48:40.69ID:o9lmMpx3Cの入門書って分割コンパイルについて余り詳しく触れられてないよね???
(もしかしたら自分の勝手な思い込みかもしれないけど...)
javaとかだったら全部クラスで管理できてるからあまり意識しなくていいしw
分割コンパイルを聞いたのが久しぶりってどゆこと?
0213デフォルトの名無しさん
2015/03/31(火) 20:57:40.63ID:o9lmMpx3cってもうちょっと文字列操作が良ければ本当に神言語なんだけどなぁ
(じゃあc++使えって話だがw)
malloc freeの問題も速度を考えればGC必要ないし
0214デフォルトの名無しさん
2015/03/31(火) 21:03:53.35ID:o9lmMpx3string str1 = "こんにちは";
string str2 = "世界";
printf(str1 + str2);
みたいな感じができればかなり良いんがなぁ本当にw
0215デフォルトの名無しさん
2015/03/31(火) 21:19:02.45ID:JyrC9ASFhttp://www.newscham.net/data/news/photo/14/42942/rektx003.jpg
http://www.peace-forum.com/korean/weekly/weeklyphoto/2006/061002-3.jpg
http://maokapostamt.img.jugem.jp/20080913_307211.jpg
0216デフォルトの名無しさん
2015/03/31(火) 22:38:47.38ID:ONXEA+M4オペレータのオーバーロード
そんな事するならC++でいいやんってのはやめてなw
0217デフォルトの名無しさん
2015/04/01(水) 06:57:21.90ID:x8oI7Jv4俺の勘違いならすまんが、cにオペレーターをオーバーロードする機能はないぞ
(c++にはあるが)
0218デフォルトの名無しさん
2015/04/01(水) 06:57:51.35ID:+NNf2R4o純Cの仕様にオペレータオーバーロードなくね
0219デフォルトの名無しさん
2015/04/01(水) 06:59:59.35ID:x8oI7Jv40220デフォルトの名無しさん
2015/04/01(水) 11:31:49.40ID:csbYE7arint型の配列、例えばint buf[32]に0か1を入れていき
最終的に1つの変数にまとめて代入したい場合はどうすれば良いんでしょうか?
要素を一つずつ判定して、ビットを操作するしかないんでしょうか?
0221デフォルトの名無しさん
2015/04/01(水) 11:39:02.15ID:MIdK/UK7掛け算しつつ 総和取る?
val = 0;
for (i=0; i<n; i++) val += bit[i] * (1 << i)
0222デフォルトの名無しさん
2015/04/01(水) 12:47:07.08ID:ubH4Nyz20223デフォルトの名無しさん
2015/04/01(水) 12:48:44.99ID:csbYE7ar>掛け算しつつ送話取る?
実はそういう事ではなかったんですが
それで問題がなかったのでそれで行かせてもらいます。
簡潔に質問しようとして、いろいろと端折り過ぎました。
ありがとう御座います
0224デフォルトの名無しさん
2015/04/01(水) 16:09:57.42ID:NSoDRANE最後にTが付くのはTypeの略であることは分かってます
0225デフォルトの名無しさん
2015/04/01(水) 16:12:30.10ID:FyEUPoFw0226デフォルトの名無しさん
2015/04/01(水) 16:15:08.47ID:NSoDRANEありがとうございます
0227デフォルトの名無しさん
2015/04/01(水) 17:02:04.06ID:wvOVoLI02行目は「オーバーロードだけ使って他はCにするならC++でいいだろってのはやめてな」って意味だろ
そもそもstringが無いからその指摘は的外れ
0228デフォルトの名無しさん
2015/04/01(水) 17:28:29.04ID:Z8Exc9Vd0229デフォルトの名無しさん
2015/04/01(水) 20:49:48.71ID:6hrzz7Tu0230デフォルトの名無しさん
2015/04/02(木) 00:50:42.53ID:y9D7NuLL>「オーバーロードだけ使って他はCにするならC++でいいだろってのはやめてな」
悪い、その文も俺の脳にはパースできないようだ…
0231デフォルトの名無しさん
2015/04/02(木) 01:19:49.56ID:SixzQMxIランディ?
0232デフォルトの名無しさん
2015/04/02(木) 07:18:59.87ID:eRCzUZCp意図をくみとるのは俺には難しい
0233デフォルトの名無しさん
2015/04/02(木) 12:11:39.83ID:lU+WA8agstring使ってんのにprintf使うならcoutでいいだろ
に置き換えろよ
0234デフォルトの名無しさん
2015/04/02(木) 22:03:54.86ID:4kJYwdnO0235デフォルトの名無しさん
2015/04/02(木) 23:00:31.34ID:RjF0eedH#include <stdio.h>
#include <string.h>
typedef struct
{
int num1, num2;
}S_COUNTER, * PS_COUNTER;
int main()
{
void init(PS_COUNTER);
S_COUNTER counter;
PS_COUNTER p_counter = &counter;
printf("num1 = %d num2 = %d\n", counter.num1, counter.num2);
init(p_counter);
printf("num1 = %d num2 = %d\n", counter.num1, counter.num2);
return 0;
}
void init(PS_COUNTER cnt)
{
memset(cnt, 0, sizeof(S_COUNTER));
}
0236デフォルトの名無しさん
2015/04/02(木) 23:42:52.72ID:dOPJ6lUgやったらどうなった?
0237デフォルトの名無しさん
2015/04/02(木) 23:47:08.20ID:RjF0eedH一応問題なかったけど、memsetの第一引数はアドレス渡す訳だから
構造体のポインタを渡しちゃってもいいんだよね?(同じことのはずだから
0238デフォルトの名無しさん
2015/04/03(金) 00:58:45.72ID:qd46Xef50239デフォルトの名無しさん
2015/04/03(金) 01:50:05.91ID:qd46Xef5void init2(S_COUNTER*);
S_COUNTER counter;
init1(&counter);
init2(&counter);
でもいいし
0240デフォルトの名無しさん
2015/04/03(金) 10:56:53.19ID:Vwd4pRr2ありがとう
0241デフォルトの名無しさん
2015/04/03(金) 13:04:47.12ID:Vwd4pRr2例えば構造体のメンバがint型の変数とchar型のポインタだった場合には
型のタイプが一致しないからmemsetじゃなくて
初期化する関数を用意するかc++だったらコンストラクタに変数を初期化すべきですよね?
0242デフォルトの名無しさん
2015/04/03(金) 13:57:25.79ID:qd46Xef5typedef struct
{
int num1, num2;
char string1[32], string2[32];
}S_COUNTER, * PS_COUNTER;
これでも memset(cnt, 0, sizeof(S_COUNTER)); でok
仮にcntのアドレスが0x00000000なら
0x00000000 &cnt
0x00000000 &cnt.num1
0x00000004 &cnt.num2
0x00000008 &cnt.string1[0]
0x00000009 &cnt.string1[1]
0x00000028 &cnt.string2[0]
0x00000047 &cnt.string2[31]
0243デフォルトの名無しさん
2015/04/03(金) 14:00:14.00ID:qd46Xef5アドレス部の&cntは全て&counterに置き換えて
0244デフォルトの名無しさん
2015/04/03(金) 14:04:45.45ID:Vwd4pRr2char*はおkでしたか。
ちなみに確かchar*のみの構造体は普通'\0'でmemsetでしたよね
では逆にmemset出来ない場合はどのような場合でしょうか
0245デフォルトの名無しさん
2015/04/03(金) 14:10:50.32ID:qd46Xef50も'\0'もやってる事は同じ
指定した範囲に1バイト単位で指定した値を書き込む以外の動作は出来ない
0246デフォルトの名無しさん
2015/04/03(金) 14:13:18.44ID:Vwd4pRr2構造体にどんな型のメンバ変数があっても
memset(&struct, 0, sizeof(struct));でおっけーってことで宜しいでしょうか?
0247デフォルトの名無しさん
2015/04/03(金) 14:15:38.54ID:Vwd4pRr2memsetでメンバの中にポインタが入ってる場合って0だとnullと同じになるんでしょうか?
無知ですいません
0248デフォルトの名無しさん
2015/04/03(金) 14:20:53.43ID:Vwd4pRr2気のせいかも
0249デフォルトの名無しさん
2015/04/03(金) 14:38:38.77ID:qd46Xef5#define 0 NULLなら同じ
0250デフォルトの名無しさん
2015/04/03(金) 14:43:50.38ID:vpujmTHz>目的として全メンバの値を0にするならおっけー
ちげーよ、バカ。死ね。
>#define 0 NULLなら同じ
ゲラゲラゲラゲラゲラゲラ
春だねえ。
0251デフォルトの名無しさん
2015/04/03(金) 14:45:35.21ID:Vwd4pRr20252デフォルトの名無しさん
2015/04/03(金) 14:49:51.77ID:Vwd4pRr2違うのでしょうか?
memsetで構造体の型分だけ0フィルするってことですよね?
ってことは構造体が持ってるメモリが0フィルされるってことだから
>>249さんが言ってる内容は正しいように感じますが
もし違うのならちゃんと説明してください
できないのなら単なる荒しですね
0253デフォルトの名無しさん
2015/04/03(金) 14:51:49.44ID:Vwd4pRr2>構造体の持ってるメンバサイズ分だけ0フィルされる
0254デフォルトの名無しさん
2015/04/03(金) 14:56:10.02ID:vpujmTHz規格読めば全部書いてある事
NULLポインタは0と==で比較すると真
ポインタ変数に0を代入するとNULLポインタになる
でも、ビットパターンがオールゼロである事は保証されていない。
#define 0 NULL
に至っては、こんなの許している処理系は歴史上存在した事がない。(多分)
0255デフォルトの名無しさん
2015/04/03(金) 15:07:36.25ID:Vwd4pRr2そうでしたnullが0は処理系によって異なる場合があるので
保証はされてませんよね...
memsetする際はポインタがある場合は初期化関数を別で用意したほうが安全ですね
0256デフォルトの名無しさん
2015/04/03(金) 15:12:05.18ID:Vwd4pRr2実質0の場合がほとんどみたいですがvoid*なので
ポインタはNULLで初期化するのが確実ですね
上記の場合ではポインタが0で初期化されてしまうので
nullが0の処理系だと問題なく動作しますが
そうでない場合は不正なメモリアクセスになって致命的なバグになる危険性がある
という認識でよろしいでしょうか?
0257デフォルトの名無しさん
2015/04/03(金) 15:42:56.77ID:qd46Xef5流れを無視した指摘は無意味なんだが
> 標準のヘッダにNULLが0でdefineしてあった気がしたのですが
と書いてあるだろう
#defineの構文ミスはごめんやで
>>256
ヘッダで0として#defineされてるんだから
マルチプラットフォームじゃなければ問題無いよ
0258デフォルトの名無しさん
2015/04/03(金) 15:54:18.84ID:vpujmTHz> ヘッダで0として#defineされてるんだから
> マルチプラットフォームじゃなければ問題無いよ
なにもわかってないな。250の言葉を借りるなら、お前は単なる荒らしだ。
0259デフォルトの名無しさん
2015/04/03(金) 15:58:36.75ID:Vwd4pRr2上記の場合構造体のメンバ分メモリが0フィルされるから
0で初期化したい場合は有効
ポインタがある場合は処理系によってNULLポインタの扱いが異なる場合があるから
NULLで初期化すれば良いってこと?
0260デフォルトの名無しさん
2015/04/03(金) 16:00:50.79ID:BgGQT5vf数値リテラルを 別の識別子に define する
なんてありえねぇ (逆はあるが)
0261デフォルトの名無しさん
2015/04/03(金) 16:05:50.01ID:BgGQT5vf構造体の初期化で省略指示
struct { あれこれ } var = { } ;
ぐらいで、あとは個別代入になりそうな気配
0262デフォルトの名無しさん
2015/04/03(金) 16:09:11.05ID:Vwd4pRr2ああ、memsetにこだわらないならそれの方がいいかも!
0263デフォルトの名無しさん
2015/04/03(金) 16:10:22.33ID:Vwd4pRr2かゆいところに手が届かんねw
0264デフォルトの名無しさん
2015/04/03(金) 16:11:34.56ID:vpujmTHzNULL(すなわち0)で初期化しなけりゃいけない。
memsetで初期化するのは正しくない。
0265デフォルトの名無しさん
2015/04/03(金) 16:15:26.75ID:qd46Xef5暇つぶしなら他に言いたい事があれば聞くけど
>>259
マクロで扱いの違いを吸収してるに過ぎないから
処理系が固定の場合はしなくていいよ
処理系の違い云々指摘するなら最初からNULLじゃなくnullptrをと指摘するべきだが
ただ荒らしたかっただけみたいだし気にしなくていいよ
>>260
>>257
0266デフォルトの名無しさん
2015/04/03(金) 16:16:31.61ID:Vwd4pRr2memsetした後にポインタだけNULLする初期化用の関数を用意するのはだめ?
0267デフォルトの名無しさん
2015/04/03(金) 16:21:50.75ID:Vwd4pRr2すまんな>>259がわかりずらい書き方だった
memset(&struct, NULL, sizeof(struct));はしてはいけないというのは理解してる前提で
とりあえず
memset(&struct, 0, sizeof(struct));した後に
ポインタだけNULLで初期化するって意味だった>>259は
0268デフォルトの名無しさん
2015/04/03(金) 16:30:18.72ID:JiHctTne#define NULL ((void *)0)
nullが、ゼロ以外のビットパターンを使う場合(処理系定義)、
NULL, 0 はC言語レベルのシンボルで、
これらがポインタに使われた際、
NULL, 0 を、nullポインタだと認識するのは、
コンパイラの仕事である
ただし、memsetで、0を設定した場合には、
どうなるか知らないけど
0269デフォルトの名無しさん
2015/04/03(金) 16:33:15.91ID:BgGQT5vf浮動小数点数もやばげ 0.0 が フルビットoff って保障されてたっけか?
まぁ 初期化済み変数を static で持っておいて
引数へ代入するとか、回りくどいコードになったりするの巻
0270デフォルトの名無しさん
2015/04/03(金) 16:40:26.22ID:vpujmTHz知ったかぶりもここまでくると芸の域だな。
> マクロで扱いの違いを吸収してるに過ぎないから
マクロは関係ない。NULLポインタのビット表現がオールゼロじゃない処理系でもマクロNULLは0でなければいけない。
お前には理解不能だろう。
> 処理系の違い云々指摘するなら最初からNULLじゃなくnullptrをと指摘するべきだが
> ただ荒らしたかっただけみたいだし気にしなくていいよ
誰もC++の話なんかしていない。最初からCの話題だ。
>>235
#include <stdio.h>
#include <string.h>
0271デフォルトの名無しさん
2015/04/03(金) 16:53:58.37ID:qd46Xef5ボロが出た気がする
> NULLポインタのビット表現がオールゼロじゃない処理系でもマクロNULLは0でなければいけない。
ならポインタ初期化で p = 0でも p = NULLでもやってる事は同じ
つまり>>249の1行目で合ってる
自分で矛盾してる事言ってるってわかってない?
0272デフォルトの名無しさん
2015/04/03(金) 16:58:22.66ID:BgGQT5vf0を代入するんじゃなくて フルビット0 を埋めるんだろ?
ポインタ変数への代入と
その変数の器に結果的にフルビット0が書かれるのとは違う事象だとおもうんだが
0273デフォルトの名無しさん
2015/04/03(金) 17:04:04.35ID:qd46Xef5じゃあサイズ1バイトにmemset(ptr, 1 size)やったら
255になるのかと言うと違うだろう?
ビット操作じゃなくてバイト毎
2バイトなら0x0101の257になる
0274デフォルトの名無しさん
2015/04/03(金) 17:10:58.11ID:BgGQT5vf例えば ポインタが2オクテットの大きさの系だとして
union {
int16 intval;
void *ptr;
} a;
ポインタへの代入 a.p = 0; の結果、a.intval == 0 とは限らない系があるので
memset による 0 フィルは あくまでも a.intval = 0 の操作であり
a.p = 0 の代入コードじゃない ということを言いたいんだが
(とはいえ 具体的な開発環境でこうなるぜ で明示できないのがやっかいじゃのう)
0 という数値の代入が
0275デフォルトの名無しさん
2015/04/03(金) 17:14:33.84ID:Vwd4pRr2結局構造体にポインタがある場合でもとりあえず
memsetで0埋めしてからポインタをNULLで初期化する関数を用意してやれば
いいのん?
0276デフォルトの名無しさん
2015/04/03(金) 17:20:46.62ID:JiHctTne浮動小数点のビット表現も、使ってはならない。
浮動小数点のデータ構造は、処理系ごとに異なるかも
>>268
のように、ポインタに、NULL, 0 が使われた場合、
数値の0とは違って、
C言語レベルのシンボルとして扱われるのかも
stddef.h, stdlib.h, stdio.h などで宣言
#define NULL ((void *)0)
0277デフォルトの名無しさん
2015/04/03(金) 17:29:56.92ID:yJj2v2fNhttp://blog-imgs-60-origin.fc2.com/f/u/n/funnyoubenki/20130524222038974.jpg
http://blog-imgs-60-origin.fc2.com/f/u/n/funnyoubenki/20130524222037a32.jpg
http://blog-imgs-60-origin.fc2.com/f/u/n/funnyoubenki/2013052422203653c.jpg
http://blog-imgs-60-origin.fc2.com/f/u/n/funnyoubenki/20130524222202051.jpg
0278デフォルトの名無しさん
2015/04/03(金) 17:50:01.42ID:d2wNb10R0279デフォルトの名無しさん
2015/04/03(金) 18:00:55.14ID:JiHctTne処理系依存だから、memsetで、0にはならないかも
ちゃんと、0を設定した方がよさそう
0280デフォルトの名無しさん
2015/04/03(金) 18:02:46.79ID:vpujmTHz予想どおり理解出来てないな。お前はバカだ。
0281デフォルトの名無しさん
2015/04/03(金) 18:08:27.80ID:qd46Xef5int16? 16ビット整数の事?
ポインタが2オクテットなら16ビットでサイズ合わない?
>>275
いきなり>>254が「ビットパターン」を持ち出してきたから意味不になってるけど
ソース上はp=0とp=NULL同じだから
0でmemsetしたらそれでいいよ
動的確保になるけどcalloc使えば確保と同時に初期化もしてくれる
S_COUNTER *pcounter;
pcounter = calloc(1, sizeof(S_COUNTER));
・・・処理
free(pcounter);
>>280
他に言う事は?
0282デフォルトの名無しさん
2015/04/03(金) 18:12:39.94ID:vpujmTHzそのとおり。そして整定数の0(規格に書いてある)を代入しなければいけない。
浮動小数点数も0で初期化すべし。こっちは整定数の0でなくても良い。
int a;
void *p1 = 0; // 正しい
void *p2 = a - a; // (整定数でないので)正しくない
0283デフォルトの名無しさん
2015/04/03(金) 18:23:11.65ID:vpujmTHzバカが調子にのってるな。炎上学習法か?
ISO/IEC 9899:1999 (E)
6.3.2.3 Pointers
An integer constant expression with the value 0, or such an expression
cast to type void *, is called a null pointer constant.
If a null pointer constant is converted to a pointer type, the resulting
pointer, called a null pointer, is guaranteed to compare unequal to a
pointer to any object or function.
Conversion of a null pointer to another pointer type yields a null
pointer of that type. Any two null pointers shall compare equal.
これでも理解できないんだろうな。バカだから。
http://www.kouno.jp/home/c_faq/c5.html#0
0285デフォルトの名無しさん
2015/04/03(金) 18:44:38.64ID:Vwd4pRr2これってJIS X 3010:2003とどれ位ちがう?
SO/IEC 9899:1999 (E)は英語だし解釈間違えるとひどいことになりそうだからw
でもどっちも辞書としてつかうわけだよね?日本語使うからって広辞苑全文暗記してる人いないだろうし
(一人もいないとは言ってないがw)
0286デフォルトの名無しさん
2015/04/03(金) 18:48:42.08ID:vpujmTHzキミも頭悪いの?
jis x3010:2003は翻訳。違っていてはいけない。
0287デフォルトの名無しさん
2015/04/03(金) 18:53:54.73ID:3hA9/32sソースコード上で、ポインタが期待される場所に 0 が現れると、
コンパイラはNULLポインタを生成する。内部表現は0でなくてもかまわない。
よって、#define NULL 0 と定義してあるからといって、
NULLポインタの内部表現が0とは限らない。
0288デフォルトの名無しさん
2015/04/03(金) 18:57:13.36ID:Vwd4pRr2せやな プログラミングの書籍で翻訳版とかあるが
結構原文の解釈と違う場合もあるみたいでry
これの場合は違っていてはいけないはずだから問題ないが
ISO/IEC 9899:1999 (E) のほうは目を通したこと無いから(JIS X 3010:2003はサラッとだが
ちょっと聞いてみたかっただけや堪忍してや
0289デフォルトの名無しさん
2015/04/03(金) 19:47:54.46ID:qd46Xef5で、それがどうした?
構造体のメンバにポインタがあってもmemset(&data, 0, sizeof(data))で問題無い
という話に対して混乱させようとする意図は何?
いや、それはさすがに問題あるのでは?
ヌルポインタは零ピットパターンとはかぎらないのだから
0291デフォルトの名無しさん
2015/04/03(金) 19:55:51.49ID:vpujmTHz予想どおり理解出来ないバカ。失笑
理解出来ずに荒らしてるのお前だけだから。
他はみんなわかったようだぞ。頭が悪いってかわいそう。
0292デフォルトの名無しさん
2015/04/03(金) 20:00:37.31ID:i6ZKWUd3ダメ 0点
偶然うまくいってるってだけ。
0293デフォルトの名無しさん
2015/04/03(金) 20:12:41.66ID:ra8S3IJoいつまで1999年とか2003年の化石的バージョン読んでるんだよ
最近見なくなったK&R信者並に老害すぎるだろ
0294デフォルトの名無しさん
2015/04/03(金) 20:16:02.00ID:qd46Xef5自分に自信が無いから攻撃的なんだよなわかるわかる
そっくりすぎて笑ってしまった
攻撃的な人が攻撃できないタイプとは?攻撃的な人の心理と対処法
ttp://worldlovestandard.com/shuri/blog/?p=1019
> (「この人はバカだから言っていることを理解できないんだ」
> などと批判することで、プライドを守りながら離れていきます)、
0295デフォルトの名無しさん
2015/04/03(金) 20:20:36.03ID:JiHctTnenilみたいな、またはエラー値のような、
論理的な値と、考えた方がよさそう
数値の0とは、概念が全く異なる
そんなんじゃだめだと思うよ‥
memset() でポインタや浮動小数点数を初期化しちゃダメ、(void *)0 や 0.0 は零ビットパターンと違うから
ていうのは頻出だよ
心理学を持ち出す先生はあてにあらない、っていうのは定評になっているよ
0297デフォルトの名無しさん
2015/04/03(金) 20:41:00.13ID:vpujmTHz規格引用で指摘されても理解出来ないなんて惨め過ぎるぞ、お前。
バカ過ぎて話にならない。
0298デフォルトの名無しさん
2015/04/03(金) 20:51:33.95ID:JiHctTnettp://www.kijineko.co.jp/tech/superstitions/initialization-by-memset.html
ここに書いてある
0299デフォルトの名無しさん
2015/04/03(金) 21:00:43.37ID:csco25n1Cみたいな低レベル御用達のプログラミング言語をつかまえて
勝手に環境非依存の前提を妄想して文句を垂れる低能。
特定の処理系前提でゼロ梅することはおかしくないし
当たり前のように行われている
0300デフォルトの名無しさん
2015/04/03(金) 21:14:31.56ID:qd46Xef5それで?
他にも言いたい事あれば聞くけど?
煽るのが好きなのはわかったから
喧嘩したいなら買ってくれる人がいそうな所行った方がいいよ
同じ喧嘩腰で返されないと空しいだけでしょ
0301デフォルトの名無しさん
2015/04/03(金) 21:17:15.94ID:vpujmTHz理解してないのはお前だけ。必死すぎるぞバカ。
0302デフォルトの名無しさん
2015/04/03(金) 21:29:25.48ID:qd46Xef5何も無いで終わればいいのにやっぱり釣りか
自慢するほどのことじゃないと思うよ‥
0304デフォルトの名無しさん
2015/04/03(金) 21:53:06.36ID:vpujmTHz0305デフォルトの名無しさん
2015/04/03(金) 23:24:54.07ID:8j0ikKGU0306デフォルトの名無しさん
2015/04/04(土) 06:46:28.56ID:jDVLk+hW知っててやる、知らない奴には教えてやる、ならいいけど
>>300 みたいに何言っても分からない人はいるし、他に正しい方法があるんだから
そっちの方法を教えるべきなんじゃないかな
0307デフォルトの名無しさん
2015/04/04(土) 09:09:08.86ID:TUTn0Lza道化以外はぬるぽの真髄を理解したようでめでたし
0308デフォルトの名無しさん
2015/04/04(土) 10:49:57.51ID:TSMAKk87そういう時はmemset0の方がわかりやすい。
memset0で値が0にならない事くらい普通分かる
0309デフォルトの名無しさん
2015/04/04(土) 10:54:05.95ID:TUTn0Lzaねーよ、バカ。
0310デフォルトの名無しさん
2015/04/04(土) 11:05:24.75ID:TSMAKk87他に構造体の領域全ビットクリア出来る方法あんの
0311デフォルトの名無しさん
2015/04/04(土) 11:09:10.78ID:EOGwyZABhttp://contents.eroga-station.com/image/m47548gd/000059/01.jpg
0312デフォルトの名無しさん
2015/04/04(土) 11:12:14.08ID:TUTn0Lza未だに理解出来ないとは知能が低すぎるぞ。お前。
0313デフォルトの名無しさん
2015/04/04(土) 11:18:15.64ID:TSMAKk87浮動小数点とかは=0で初期値セットするだろ。
memsetは値をセットする使い方はせんだろ
0314デフォルトの名無しさん
2015/04/04(土) 11:29:40.27ID:GZJxoxqq>そんじゃあ構造体の領域空にしたいときどうすんの
Cは知らんがC++では
v = unko{}; // value-initialize
または
new(&v) unko{};
0315デフォルトの名無しさん
2015/04/04(土) 11:31:12.03ID:TSMAKk870316デフォルトの名無しさん
2015/04/04(土) 11:49:57.82ID:5nipgFZdhttp://contents.eroga-station.com/image/m47548gd/000059/01.jpg
0317デフォルトの名無しさん
2015/04/04(土) 12:22:56.19ID:69IByEFn0318デフォルトの名無しさん
2015/04/04(土) 12:32:57.71ID:TUTn0Lzaやっと>>275まで追いついたか。バカ。
>>238-239は取り消すのか?
>>317
毎年、新規バカが颯爽と現れるのでしょうがない。
0319デフォルトの名無しさん
2015/04/04(土) 12:35:30.49ID:TSMAKk870320デフォルトの名無しさん
2015/04/04(土) 12:38:16.57ID:hFNOADFZそれ以外は会話がずれてるだけで間違ってはいない
0321デフォルトの名無しさん
2015/04/04(土) 12:39:58.49ID:TUTn0Lza0322デフォルトの名無しさん
2015/04/04(土) 12:56:52.12ID:TUTn0Lza>>257,>>265,>>271,>>273,>>281,>>289が正しいとでも?
0323320
2015/04/04(土) 13:14:35.02ID:q7Jw3FnS空にする(バイトゼロ埋め)ことと値のゼロ代入を一貫して区別していて
もともとの>>235を前者として解釈したと推察すれば、誤りではない。
「(バイトゼロ埋めの手段としては)問題無い」という
アスペな主張なのではないのか
0325デフォルトの名無しさん
2015/04/04(土) 13:47:34.18ID:TUTn0Lza>>257, >>265は#define 0 NULL(爆笑)ならば、ヌルポのメモリ上表現もゼロであると思い込んでる証拠
一貫して、そのように思い込んで爆笑発言を繰り返している
0326デフォルトの名無しさん
2015/04/04(土) 13:48:39.27ID:+ZfwIkd70327デフォルトの名無しさん
2015/04/04(土) 13:53:26.85ID:TUTn0Lza0328デフォルトの名無しさん
2015/04/04(土) 14:20:13.36ID:+L10ZiLX処理系なんて実際にあるの?
ありもしないとか極めて希少な環境への移植を考えて「正しい」コーディング
を頑張るなんて無駄じゃないの?
0329デフォルトの名無しさん
2015/04/04(土) 14:57:32.40ID:TUTn0Lza0330デフォルトの名無しさん
2015/04/04(土) 15:31:09.91ID:vnA/3gIx0331デフォルトの名無しさん
2015/04/04(土) 15:37:58.36ID:ugaLmOKA0332デフォルトの名無しさん
2015/04/04(土) 15:38:13.07ID:TUTn0Lza1行増えるだけがそんなに面倒ならPGやめろよ。
0333デフォルトの名無しさん
2015/04/04(土) 15:43:20.74ID:knpZoffv0334デフォルトの名無しさん
2015/04/04(土) 15:48:11.26ID:jZ5PxFf4プログラムの前提条件をどうするかに依る話なので
勝手に他人に100%ポータビリティを要求しないでください。
ただ前提がありながら前提を説明できない低能は死ぬべき。
アメリカ人の糞オプソの殆どが該当
0335デフォルトの名無しさん
2015/04/04(土) 15:56:14.75ID:TUTn0Lzaどういう前提条件があると
static const struct a zero = {0};
*p = a;
より
memcpy(p, 0, sizeof(struct a));
が推奨されるのかね? また推奨する理由は?
0336デフォルトの名無しさん
2015/04/04(土) 16:00:18.00ID:+L10ZiLX0337デフォルトの名無しさん
2015/04/04(土) 16:05:27.37ID:+L10ZiLX規格の非現実的な部分にまでこだわるのこそ趣味の領域じゃねーの
0338デフォルトの名無しさん
2015/04/04(土) 16:36:29.67ID:TUTn0Lza巨大なPODをメモリ上に持つ必要もない。
C99のコンパウンドリテラルが利用できない、または利用できてもmemcpy相当に最適化できない
マヌケなコンパイラの下で巨大なPOD配列を初期化する場合という極めて特殊な状況だけだね。
0339デフォルトの名無しさん
2015/04/04(土) 16:45:42.54ID:TUTn0Lza引き続きID:jZ5PxFf4の「前提条件」とやらはレスを待つ。
ついでだから>>328にもレスしとく
誤解してるようだが、頑張ってるわけじゃなくて、ジジイの悪習慣を非難しているだけだ。
memsetで初期化する合理的な理由なんか存在しない。反論したいなら合理的な理由を出せばよい。
0340デフォルトの名無しさん
2015/04/04(土) 16:59:27.17ID:+ZfwIkd7どんだけヲタッキーだよw
そういった奴は、会社からは重宝されるだろうな
土日とか打刻なしでプログラム書いてくれたりするの?
0341デフォルトの名無しさん
2015/04/04(土) 17:19:57.93ID:+L10ZiLX>巨大なPODをメモリ上に持つ必要もない。
そんなこと言われても。。。
例えば既にメモリ上にある(画像データとかの)巨大なPOD配列を
ゼロ初期化したい場合はどうするのが正しいわけ?
0342デフォルトの名無しさん
2015/04/04(土) 17:36:12.49ID:vnA/3gIxえ?OSSなら、後で気付いた誰かがfixするだろ
0343デフォルトの名無しさん
2015/04/04(土) 17:38:46.98ID:+L10ZiLX{
float r;
float g;
float b;
};
Pixel graphic[1600*1200];
void PaintItBlack()
{
memset(graphic, 0, sizeof(graphic));
}
これが許しがたい規格違反らしいけど、どうすりゃいいのさ
0344デフォルトの名無しさん
2015/04/04(土) 17:39:32.75ID:TUTn0Lza引退したジイさんは暇なんだろ。でも新しい事を学習する能力は無いらしく、
現役時代のスタンダードであるmemsetでの初期化を頑固に使い続けているようだ。
>>341
そのPODデータはポインタ含む、そういう前提だからな。
それならば、先頭要素に構造体の代入、残りをmemcpy。
0345デフォルトの名無しさん
2015/04/04(土) 17:39:56.18ID:vnA/3gIxそういう場所は、VBAとAccess使えるだけで御の字だろ
まぁ、そういう場所は、これから全部、淘汰されるよ
0346デフォルトの名無しさん
2015/04/04(土) 17:48:11.97ID:NZvoao1Fメンバにポインタがある時の話だよ
>>344
ID:qd46Xef5は俺だが・・・
同一人物視した方が都合がいいのかわからんが
一度統合失調症で調べてみた方がいい
既に終わってた話をわざわざ>>307で蒸し返し荒らす目的なんだろ?
#defineの件は>>257見ろ
0347デフォルトの名無しさん
2015/04/04(土) 17:48:54.04ID:NZvoao1F0348デフォルトの名無しさん
2015/04/04(土) 17:55:30.12ID:TUTn0Lzavoid PaintItBlack()
{
graphic[0] = (Pixel){};
memmove(graphic + 1, graphic, sizeof(graphic) - sizeof(graphic[0]));
}
>>346
終わらせたいのだったら>>302のような捨て台詞残すな。#define 0 NULLは語り継いであげるよ。
0349デフォルトの名無しさん
2015/04/04(土) 18:00:56.24ID:NZvoao1Fその相手はもう>>304で終わってるからな
粗探しも好きなようだがそんな事してて空しくならないのか・・・
0350デフォルトの名無しさん
2015/04/04(土) 18:18:16.55ID:TUTn0Lza本人が間違いを認めずに逃亡したから念押ししておかないとな。ウソが放置されるのは良くない。
>>325が全てで良いな。
0351デフォルトの名無しさん
2015/04/04(土) 18:46:59.39ID:vnE4VUnZint a[][3] = {
{1,2,3},
{4,5,6},
{7,8,9},
{10,11,12}
};
int b[4][3];
memcpy(b, a, sizeof(a));
みたいにmemcpyすんのってどっちのほうがいいのかそれともどっちでもいいのか?
0353デフォルトの名無しさん
2015/04/04(土) 19:02:12.20ID:vnE4VUnZ0354デフォルトの名無しさん
2015/04/04(土) 19:17:02.70ID:+L10ZiLXそれ試してみたけどmemsetの2.5倍時間かかるわ、当たり前だけど
VC++2013、core-i7
0355デフォルトの名無しさん
2015/04/04(土) 19:35:34.03ID:TUTn0Lzaうん、memmoveだからね。
そうなった時にスピード重視でmemsetでの初期化は合理的な選択だと思うよ。
0356デフォルトの名無しさん
2015/04/04(土) 19:39:00.32ID:TUTn0Lzahttp://freej.dyne.org/codedoc/fastmemcpy_8cpp_source.html
0357デフォルトの名無しさん
2015/04/04(土) 19:57:47.93ID:NZvoao1F1日中貼り付いて惨めだと思わない?
>>249の「目的として全メンバを0にするなら」という前提を無視して混乱させるのはいつまで続ける気?
0358デフォルトの名無しさん
2015/04/04(土) 20:40:40.45ID:b0zg4ied#include <stdio.h>
typedef struct{
int num1;
double num2;
char *str;
}S_COUNTER;
S_COUNTER g_counter; /*グローバルなら*/
int main(void)
{
S_COUNTER l_counter = { 0 }; /*ローカルなら*/
printf("g --- num1 = %d, num2 = %f, str = %s\n", g_counter.num1, g_counter.num2, g_counter.str);
printf("l --- num1 = %d, num2 = %f, str = %s\n", l_counter.num1, l_counter.num2, l_counter.str);
return 0;
}
/***出力結果
g--- num1 = 0, num2 = 0.000000, str = (null)
l--- num1 = 0, num2 = 0.000000, str = (null)
こういう意図でいいのかな?
***/
浮動小数点の零はビットパターンオール0 とは限らないし、
ヌルポインタもビットパターン零を想定しないほうがお行儀がいい
AMD64 になって、sizeof(void *) != sizeof(int) が当たり前になった世界でいろいろ苦労することもあるというのに、
memset() で押し通す必要があるのか?
そこまでして論破されたくない、というチンケなプライドは理解に苦しむ
0360デフォルトの名無しさん
2015/04/04(土) 21:29:51.59ID:j1GP0GXk低レベルな処理だと、環境依存でバイナリイメージ決め打ちじゃないとかけない。
アプリ系でも数値計算系で浮動小数点がIEEE準拠じゃないとか、その時点でプラットフォームとして不適切なアプリが多いよね。
0361デフォルトの名無しさん
2015/04/04(土) 21:35:21.35ID:TUTn0Lza#define 0 NUJLL(大爆笑)ならヌルポは0という、キモを省略しちゃいかんな。
>>249
> 目的として全メンバの値を0にするならおっけー
> #define 0 NULLなら同じ
0362デフォルトの名無しさん
2015/04/04(土) 21:37:18.59ID:+ZfwIkd7どうでもいいから、さっさと動かせよって思うわ
0363デフォルトの名無しさん
2015/04/04(土) 21:40:28.14ID:TUTn0Lza勉強不足っていうか、ドキュメント読む習慣のないクズだよ
0364デフォルトの名無しさん
2015/04/04(土) 21:42:24.37ID:ugaLmOKA0365デフォルトの名無しさん
2015/04/04(土) 21:59:03.27ID:jIu2FuGY実際には半数はmemset使ってる。
俺もそうだ。しかし、嘘をついているわけではない。
公共性の高い場所で、処理系依存になる方法を薦めるわけにはいかないのだ。
諸事情を分かってて使っている場合は良い。自分は分かってる。だからOK。
そういう理屈だ。
0366デフォルトの名無しさん
2015/04/04(土) 22:08:21.30ID:ugaLmOKAあぶないよね、これって
0367デフォルトの名無しさん
2015/04/04(土) 22:25:06.12ID:jIu2FuGY0368デフォルトの名無しさん
2015/04/04(土) 22:41:11.59ID:NZvoao1F1行目は>>246に対して
2行目は>>248に対して
一緒にして考えるからそうなる
プログラムしてるなら先入観や思い込みは捨てるだろう普通
0369デフォルトの名無しさん
2015/04/04(土) 23:13:57.48ID:nF+pPxHohttp://www.lollipop.sg/sites/default/files/public/article/images/gallery/tumblr_m6kn4lfltx1qeoi6zo1_250jpg1370842924643-data_0.jpg
http://www.lollipop.sg/sites/default/files/public/article/images/gallery/tumblr_m6kn6uwnve1qeoi6zo1_250jpg1370842925361-data_0.jpg
0370デフォルトの名無しさん
2015/04/05(日) 00:52:43.29ID:meaYiL0S「#define 0 NULL(大爆笑)なら同じ」が
>>248への回答だって。笑わせてくれるねえ。
>>247-248への回答じゃないと意味が通じないぞ。
バカはどこまでもバカだな。
>>281
> ソース上はp=0とp=NULL同じだから
> 0でmemsetしたらそれでいいよ
ヌルポが0だからmemsetでオーケーと言ったの忘れたか?
0371デフォルトの名無しさん
2015/04/05(日) 00:55:17.42ID:Vn0iAlJU0372デフォルトの名無しさん
2015/04/05(日) 01:40:54.33ID:db7WcjYS>>246のおっけーに合わせておっけーって返してるように見えるが
memset(p, 0, size) = memset(p, NULL, size)って事だろ
0373デフォルトの名無しさん
2015/04/05(日) 02:21:58.52ID:kpY9v30ememsetでnull使うのは間違いじゃ?
0374デフォルトの名無しさん
2015/04/05(日) 02:24:39.70ID:db7WcjYS第二引数が0でもNULLでも同じって事だろ
0375デフォルトの名無しさん
2015/04/05(日) 02:34:44.94ID:kpY9v30e0376デフォルトの名無しさん
2015/04/05(日) 02:42:02.15ID:Vn0iAlJU0377デフォルトの名無しさん
2015/04/05(日) 02:43:52.88ID:kpY9v30evoid*と0が同じ型なのかお前の頭の中ではと言われるぞ
0378デフォルトの名無しさん
2015/04/05(日) 02:53:29.17ID:db7WcjYS>>248 > NULLが0でdefineしてあった
0379デフォルトの名無しさん
2015/04/05(日) 02:59:24.27ID:kpY9v30e前のレスちゃんと読めよ
まぁでも日曜プログラマで実行してエラー出てないんならいいんじゃねえの?
0380デフォルトの名無しさん
2015/04/05(日) 03:06:38.03ID:mYW6PIcT#define NULL 0 にしてる時は、NULLが整数型の0になってんだから、意味的には同じだろう。
#define NULL 0 はあまり良くは無いがな。
0381デフォルトの名無しさん
2015/04/05(日) 03:07:26.60ID:db7WcjYS前ってどの前だ
0382デフォルトの名無しさん
2015/04/05(日) 03:12:04.79ID:hmfaf3IYhttp://1.bp.blogspot.com/-UHJ75UQ4dyE/VQ6Q40loinI/AAAAAAAAXP4/WLiqTKBehtM/s1600/t-ara%2Bcelucasn%2B(10).png
http://2.bp.blogspot.com/-ua1GlEj-nss/Ue_gxU2L14I/AAAAAAAALxA/-nv61ZoUhV0/s1600/Suzy+%252810%2529.jpg
http://2.bp.blogspot.com/-YLfz4v9Rqxs/VK9STsg9UHI/AAAAAAAAd1g/gDYblQ2thso/s1600/Hello-Venus-MV.jpg
0383デフォルトの名無しさん
2015/04/05(日) 09:56:58.77ID:meaYiL0S#define 0 NULL(爆笑)クンは
memsetで初期化した後、ポインタメンバをNULLで初期化すればよいか? (>>275)
という問いに、memsetだけでおけーと回答しているわけだ。
>>281
> ソース上はp=0とp=NULL同じだから
> 0でmemsetしたらそれでいいよ
0384デフォルトの名無しさん
2015/04/05(日) 10:26:48.70ID:meaYiL0S整定数0をポインタに変換したものがぬるぽと規定されているけれど、
ぬるぽを整数に変換したときに0になるとはどこにも書かれていない。
#define NULL ((void *)0)
なら間違い。
>>376
C FAQに書かれている事くらいはこだわれ。
0385デフォルトの名無しさん
2015/04/05(日) 11:03:14.82ID:b6zpPJ9/大部分は正しいけどオナニー入りすぎ
それに何よりウザいのが他人に説明無しに「C faqが〜」みたいに
自分のオナニー文書が世界の常識と言わんばかりに語り出す信者
0386デフォルトの名無しさん
2015/04/05(日) 11:14:27.26ID:db7WcjYS> NULLが0でdefine
って前提で話が進んでる所で頓珍漢な事を言い出す奴?
0387デフォルトの名無しさん
2015/04/05(日) 12:03:57.35ID:meaYiL0SNULLはヌルポ定数であり、ヌルポ定数は0または(void*)0
ところが、ポインタが使用できるあらゆる箇所で0を使って良いのは
sizeof(void*)==sizeof(int)の場合だけ
この条件が指定されていないのだからNULLは(void *)0とするのが正しい
0388デフォルトの名無しさん
2015/04/05(日) 12:07:19.45ID:meaYiL0Sバカにいちいち説明するのは面倒なのでFAQが作られている
FAQすら読んでねーバカは近寄るなと言う事だよ
0389デフォルトの名無しさん
2015/04/05(日) 12:32:59.67ID:db7WcjYS質問者が実際に
>>248で > 標準のヘッダにNULLが0でdefineしてあった気がしたのですが
と言ってるからそれなら第二引数が0でもNULLでも同じって事だろ
都合がいいように捻じ曲げるな
0390デフォルトの名無しさん
2015/04/05(日) 12:33:00.71ID:ZSoXTOOkという例が>388ですね
0391デフォルトの名無しさん
2015/04/05(日) 12:34:12.84ID:CGkbVOZ+0392デフォルトの名無しさん
2015/04/05(日) 12:36:54.20ID:XqnpqZbw>大部分は正しいけどオナニー入りすぎ
間違いだ、「全部」正しい、オナニーなのは C99
>それに何よりウザいのが他人に説明無しに「C faqが〜」みたいに
>自分のオナニー文書が世界の常識と言わんばかりに語り出す信者
C FAQ はもともと英語圏で発生した世界の常識だ
信者がたけのこ様に生えてくるのも計算ずみ
0393デフォルトの名無しさん
2015/04/05(日) 12:37:54.75ID:XqnpqZbwC89/K&R2 が至高、C99 以降はオナニー
0394デフォルトの名無しさん
2015/04/05(日) 13:14:52.58ID:HyPEFrWR0395デフォルトの名無しさん
2015/04/05(日) 14:02:11.39ID:CrZCL72O『A:ANSI C規格は「変更可能な左辺値(modifiable lvalue)」を定義して いる。その中に配列は入っていない。』
アスペ過ぎるだろC FAQ
0396デフォルトの名無しさん
2015/04/05(日) 14:45:38.75ID:meaYiL0S「気がしたのですが」をうのみにしたバカが設定したバカ前提で
お前がint引数にNULL与えても良いとか寝言ほざいてたから指摘しただけだ。
横道なのでどうでもよい。
で、巻き戻すと
>>372
#define 0 NULL(大爆笑)クンの爆笑発言
> 目的として全メンバの値を0にするならおっけー
> #define 0 NULLなら同じ
1行目は>>246への回答だと言い逃れているが、
が、質問は
> 構造体にどんな型のメンバ変数があっても
なので、どんな型(ポインタ型)でもおっけーと答えている。
#define 0 NULL(大爆笑)クンはぬるぽのメモリ表現がオールゼロと
は限らない事を知らなかったバカという結論にかわりはない。
0397デフォルトの名無しさん
2015/04/05(日) 14:46:43.87ID:meaYiL0SThe term ``lvalue'' doesn't quite mean ``something you can assign to''; a better definition is ``something that has a location (in memory).''
0398デフォルトの名無しさん
2015/04/05(日) 15:31:16.48ID:db7WcjYS鵜呑みも何も「気がした」に対して「なら同じ」って言ってるだろ?
1行目は「目的として全メンバの値を0にするなら」って前提があるだろ
「#define 0 NULL」に拘ってるようだが
>>257で既に言及してるしそれも「横道」で煽り荒らし目的という結論にかわりはない
いつまでやるんだよこの話暇人かよ
0399デフォルトの名無しさん
2015/04/05(日) 15:37:03.53ID:XqnpqZbwもうすぐ春なのに、春なのに
ためいきまた一つ‥orz
0400デフォルトの名無しさん
2015/04/05(日) 16:27:52.30ID:SZGQAxvY> ところが、ポインタが使用できるあらゆる箇所で0を使って良いのは
> sizeof(void*)==sizeof(int)の場合だけ
これどういうこと?
ポインタが要求される文脈なら sizoef によらず 0 を使ってもいいだろうし、
可変長引数とか一部の例外では sizeof によらずやっぱりダメだろうし、
sizeof と 0 が使えるかどうかの関連がわからない。
0401デフォルトの名無しさん
2015/04/05(日) 16:43:55.41ID:kpY9v30emalloc(もしくはcalloc)して動的確保したメモリが足りなくなったとき
再度確保するにはreallocするわけだがそのreallocしたものを再度確保するには
reallocさらにそのreallocしたものを再度確保するにはreallocさらにさらに
...と事実上半永久的にrealloc出来るわけだよな?
0402デフォルトの名無しさん
2015/04/05(日) 17:22:15.06ID:XqnpqZbwそのとおり
メモリがある限りにおいて realloc() の反復は可能
0403デフォルトの名無しさん
2015/04/05(日) 17:25:58.27ID:kpY9v30eりょーかい!さんきゅ
0404デフォルトの名無しさん
2015/04/05(日) 17:33:42.77ID:meaYiL0S可変長引数関数の引数に0は使えない、(void *)0は使える。
0405デフォルトの名無しさん
2015/04/05(日) 17:42:57.41ID:meaYiL0S> 1行目は「目的として全メンバの値を0にするなら」って前提があるだろ
全メンバの値を0にしちゃいけない質問(>>246-247)に対して、勝手に前提
つくってmemsetでおっけーと答えたといってるんだな。
それでも、お前がぬるぽのメモリ表現がオールゼロとは限らない事を知ら
なかったバカという結論にかわりはないじゃないか。 バカ。
0406デフォルトの名無しさん
2015/04/05(日) 17:44:45.07ID:SZGQAxvYそれはわかってる。
でもそれは sizeof(void*)==sizeof(int) であろうがなかろうが変わらないよね?
0407デフォルトの名無しさん
2015/04/05(日) 18:31:19.96ID:meaYiL0Sそういやそうだね。となると#define 0 NULL(大爆笑)クンが必死で主張している
#define NULL 0
なる環境はC99(C89?)では存在しないという事になるね。
0408デフォルトの名無しさん
2015/04/05(日) 18:39:13.00ID:SZGQAxvYえ?なんでそうなる?
0 はヌルポインタ定数のひとつなんだから、 #define NULL 0 は C/C++ 規格の実装として正しいでしょ。
0409デフォルトの名無しさん
2015/04/05(日) 18:44:38.21ID:meaYiL0SC++はnullptrが出てきたので脇にのけといて、Cでは可変長引数関数にNULL渡せないから困る
0410デフォルトの名無しさん
2015/04/05(日) 18:54:59.34ID:SZGQAxvY確かに困る。困るが、それで #define NULL 0 という実装が存在しないという事にはならないよ。
0411デフォルトの名無しさん
2015/04/05(日) 18:57:50.63ID:meaYiL0S0412デフォルトの名無しさん
2015/04/05(日) 19:00:57.59ID:SZGQAxvYsizeof もメモリ上の表現もどうだろうと関係ないよ。
C FAQ 読み直したほうがいい。
http://www.kouno.jp/home/c_faq/c5.html#5
0413デフォルトの名無しさん
2015/04/05(日) 19:11:09.40ID:meaYiL0S可変個引数関数ではポインタにキャストしろ、なんて処理系作ったらぶっ殺されても文句は言えない。
(void *)NULL
とか大笑いだわ。NULLが未定義の方が100倍まし。
0414デフォルトの名無しさん
2015/04/05(日) 19:28:08.31ID:SZGQAxvY残念ながらそれで規格には合致してるんだよ。
C/C++ を使うプログラマはその可能性を理解している必要がある。
(だから今時 NULL や可変長引数なんて使いたくないんだよ。)
0415デフォルトの名無しさん
2015/04/05(日) 20:06:19.82ID:db7WcjYS○○するならOK(しないならNG)という事もわからないの?
> #define NULL 0
> なる環境はC99(C89?)では存在しないという事になるね。
墓穴掘った?
埋めといてあげるからその辺にしておけば・・・
0416デフォルトの名無しさん
2015/04/05(日) 20:06:54.26ID:meaYiL0SこれにはNULLをexeclに渡すのは正しくないと書いてあるな
でも、
http://www.kouno.jp/home/c_faq/c5.html
http://www.faqs.org/faqs/C-faq/faq/
には、5.11が抜けてる。
そう言う処理系作った奴はがぶっ殺されたんだろ。
0417デフォルトの名無しさん
2015/04/05(日) 20:09:02.15ID:meaYiL0Sまたバカが調子に乗ってきたな。それでも↓という結論には何の影響もないから。
> 1行目は「目的として全メンバの値を0にするなら」って前提があるだろ
全メンバの値を0にしちゃいけない質問(>>246-247)に対して、勝手に前提
つくってmemsetでおっけーと答えたといってるんだな。
それでも、お前がぬるぽのメモリ表現がオールゼロとは限らない事を知ら
なかったバカという結論にかわりはないじゃないか。 バカ。
0418デフォルトの名無しさん
2015/04/05(日) 20:14:50.05ID:XqnpqZbwキャストすれば渡せるよ
昔の教科書にはよく、execl("/usr/bin/rm", "rm", "-rf", (char *)0) ってあっただろう?
0419デフォルトの名無しさん
2015/04/05(日) 20:17:03.78ID:meaYiL0Shttp://www.kouno.jp/home/c_faq/c5.html#5
5.4:
| 整数0とヌルポインター 定数の違いをはっきりさせたい場合は、NULLをヌルポインタが必要で あるところならどこに使用してもよい。
これはexecl(..., NULL);と書けると言ってるように思える。
0420デフォルトの名無しさん
2015/04/05(日) 20:17:34.58ID:XqnpqZbwそれはそれであっているよ。
可変長引き数は、変数のサイズのバリエーションが少なくなるように決めうちされるからね
0421デフォルトの名無しさん
2015/04/05(日) 20:21:52.49ID:XqnpqZbwそれは実装を考慮せずに機械的に文言だけで判断したためにおきる、誤った拡大解釈だね。
いちど execl(), execv() をびしばし使ってみれば自然にわかるようになるよ‥
0422デフォルトの名無しさん
2015/04/05(日) 20:21:59.27ID:meaYiL0Sアスペ? 文脈読めよ。
(文字通りの)NULL渡せなくて困ると言っている。
0423デフォルトの名無しさん
2015/04/05(日) 20:28:57.87ID:SZGQAxvYその直後のパラグラフにちゃんとキャストが必要な場合について書いてあるよ。
http://www.kouno.jp/home/c_faq/c5.html#4
> ... それでも特に関数の引数ではNULLに(0にも必要であるのと同じ で)明示的なキャストが必要かもしれない。 ...
0424デフォルトの名無しさん
2015/04/05(日) 20:29:57.77ID:XqnpqZbw「マクロ NULL を使うとヌルポインタを可変長引数関数に渡せない」と正確に書いてほしかったね
俺は ポインタや double/float を memset() で 0 クリアすることで初期化したことにする、というのには反対の立場だけど
0425デフォルトの名無しさん
2015/04/05(日) 20:41:49.60ID:meaYiL0SC FAQの5.11が削除されている謎は残るけど、まあ、いいや。
そういうぶっ殺したくなる処理系も規格に合っていて存在しうるという事で、
可変個引数の関数呼び出しはこれから注意しよう。
0426デフォルトの名無しさん
2015/04/05(日) 20:59:29.00ID:db7WcjYSもう他の手は思いつかないから今度はコピペ?笑わせてもらったよ
それについては「○○するならOK(しないならNG)という事もわからないの?」で終わり
0427デフォルトの名無しさん
2015/04/05(日) 21:00:33.25ID:meaYiL0S調子に乗ったタワゴトは読み飛ばしてたわ。バカの浅知恵。
> ○○するならOK(しないならNG)という事もわからないの?
逆は必ずしも真ではないって、中学校で学習する論理学の初歩だぞ。
で、前提とやら(目的として全メンバの値を0にするなら)は、>>246の質問のどこから出てきたんだ?
0428デフォルトの名無しさん
2015/04/05(日) 21:16:31.30ID:db7WcjYSなんでそっから出てくるんだよw
よく読んでからレスしてくれ
0429デフォルトの名無しさん
2015/04/05(日) 21:31:28.08ID:EnZWbZxg0430デフォルトの名無しさん
2015/04/05(日) 22:11:47.78ID:meaYiL0S壊れてきたか? そっからも何も
> 415 :デフォルトの名無しさん:2015/04/05(日) 20:06:19.82 ID:db7WcjYS
> >>405
> ○○するならOK(しないならNG)という事もわからないの?
と、お前が言い出したんだろ。
> 1行目は「目的として全メンバの値を0にするなら」って前提があるだろ
これもお前の発言(>>396)であり、>>246への爆笑回答の前提らしい。
簡単に聞いてあげよう。でもバカだからわからないかな?
> 1行目は「目的として全メンバの値を0にするなら」って前提があるだろ
このお前が持ち出してきた、前提はどこから出てきたんだ?
0431デフォルトの名無しさん
2015/04/05(日) 22:48:40.07ID:db7WcjYS「目的として全メンバの値を0にする」って前提なら>>246はおっけーって事で
どこから出てきたじゃなく回答として「○○ならOK」って意味だろ
>>249の1行目そのままだろう何がわからないんだ
0432デフォルトの名無しさん
2015/04/05(日) 23:18:48.24ID:t7rp2m9dポインタ型はゼロクリアではダメな場合がある事をバカだから知らなかった。
0433デフォルトの名無しさん
2015/04/05(日) 23:37:46.49ID:db7WcjYS全メンバ「の値」
0434デフォルトの名無しさん
2015/04/05(日) 23:45:37.44ID:St9gO3eY>>308>>313読めばゼロクリアと初期化を別に考えてるのはわかるだろ
ゼロクリアはきっと未使用時に仮想マシンの可変長ディスクをコンパクションさせるような
特殊な事情があんだよ。きっと
0435デフォルトの名無しさん
2015/04/05(日) 23:48:00.48ID:EnZWbZxgそれは俺だから。別人だってんだろ。混同すんな。
0436デフォルトの名無しさん
2015/04/06(月) 02:26:56.45ID:AEDCz7+8それが、どうした。ほれ、これで良いのか?
「目的として全メンバの値を0にする」が間違ってる。
ポインタ型はゼロクリアではダメな場合がある事をバカだから知らなかった。
0437デフォルトの名無しさん
2015/04/06(月) 14:12:22.14ID:6IkcgflQchar* p;
memset(p, 0, size); // memset(p, NULL, size)
について、
pをNULL値にする場合、そのヌルポインタはpがNULLか否かの判定だけでしか使えない。
よって、#define NULL 0 にしてあれば、実質、上のmemsetでpの値は0になる。
0438デフォルトの名無しさん
2015/04/06(月) 19:19:13.55ID:2RGz3ua80439デフォルトの名無しさん
2015/04/06(月) 19:24:56.98ID:AEDCz7+8ネタにしてもつまんねーよ。バカ。
#define 0 NULL(大爆笑)クンはあまりのバカさに周りの人間はバカと指摘
するのを遠慮して、今までバカと指摘されたことが無かったのだろう。
チンケなプライド(笑)で必死に食い下がってただけ。
お前が上のやり取り読んだ上でそれをネタでなく書いているなら、論理的
な理解力が致命的に欠如している。
この業界は向いてないから、頭使わない職業に転職する事を勧める。
0440デフォルトの名無しさん
2015/04/06(月) 20:04:23.64ID:6IkcgflQ0番地はヌル以外に使い道が無い。
0441デフォルトの名無しさん
2015/04/06(月) 20:08:15.70ID:kxLa9VZo0442デフォルトの名無しさん
2015/04/06(月) 20:08:19.48ID:e+Wx+qlzいつまでも本筋ではない#defineに拘る粘着質な性格
相手をバカと見下さずにはいられない性格
チンケなプライド()で必死に何日も粘着する性格
どうしようもないな
C言語という前提 >>235
NULLが((void*)0)でなく0かも知れないと言う前提 >>248
構造体にmemsetするという前提 >>246-247
その前提をぶっ壊したレスは全て無意味
#define NULL 0ならp = 0もp = NULLも同じ
コンパイル前に展開されNULLが0になる
0443デフォルトの名無しさん
2015/04/06(月) 20:10:36.27ID:e+Wx+qlzmemset(p, 0, size)もmemset(p, NULL, size)も同じ
0444デフォルトの名無しさん
2015/04/06(月) 20:28:18.07ID:NcW3di0b標準関数でもdefineでNULLを0にしてるのも有れば、(void*)0の関数も有る。
決まった値なんて無いんだから変更して使っても良いんだよ。
だからNULLを0と決めたら、それをNULLとして使って良いんだよ。
0445デフォルトの名無しさん
2015/04/06(月) 20:36:06.98ID:vTHIwo8pC++のソースでclassをnewで生成してるのに
メモリをmallocで確保しているのって普通ですか?
そのC++ソースはネットワークアクセス関連なのですが、
C++でmallocって、よく仕様を分かっていない
→ ネットワークアクセス関連の仕様も分かっているんだろうか
…と、そのプログラムの心配になって私は苦しんでます。
0446デフォルトの名無しさん
2015/04/06(月) 22:06:12.90ID:TiB43yflお前の頭の方が心配だ。
0447デフォルトの名無しさん
2015/04/06(月) 22:50:07.44ID:6qjJgboNおまえはC・C++をやる前に国語をもっと勉強しろ
0448デフォルトの名無しさん
2015/04/06(月) 22:50:48.37ID:AEDCz7+8見下されるような低能な発言を続けるお前の責任。
> 構造体にmemsetするという前提 >>246-247
前提じゃなく質問だろ。バカすぎる。
Q 初期化はmemsetで良いですか?
A ダメ
> #define NULL 0ならp = 0もp = NULLも同じ
> コンパイル前に展開されNULLが0になる
まだ分かってねーよこのバカ。問題はその先だ。
0449デフォルトの名無しさん
2015/04/07(火) 00:11:24.42ID:su68f2vTmemset(p, 0, size) だと未初期化(不定)の p を渡してることになるからそれはないとして、
memset(&p, 0, sizeof(p)) のつもりなんだよね?
「pの値は0になる」が assert(p == 0) ということなら、それは(みんなの言うとおり)保証されない。
>>440
> 0番地はヌル以外に使い道が無い。
そうじゃない環境での実装も可能なように、規格は作られている。
0450デフォルトの名無しさん
2015/04/07(火) 00:16:30.00ID:ogNBYyHd0451デフォルトの名無しさん
2015/04/07(火) 00:42:04.06ID:eLsJnCwYC言語では規格上
#define NULL 0
intptr_t i = NULL;
void *p = NULL;
の時になんとmemcmp(&i, &p, sizeof(intptr_t)) == 0が保証されていないんですねえ。
ここまで知っていると、元の質問(>>246-247)は
void *p;の初期化はmemset(&p, 0, sizeof(p))でおっけーでしょうか?
という事を聞いているのが明らかですねえ。質問者はぬるぽが0じゃ
ない処理系もあるという事をおぼろげながら知っていたんでしょう。
それに対する#define 0 NULL(大爆笑)クンの爆笑回答
>>249
> 目的として全メンバの値を0にするならおっけー
> #define 0 NULLなら同じ
バカですねえ。マヌケですねえ。死んだ方が良いですねえ。
memcmp(&i, &p, sizeof(intptr_t)) == 0ならば、誰もそんな質問しませんねえ。
はい、もう一回。
バカですねえ。マヌケですねえ。死んだ方が良いですねえ。
0452デフォルトの名無しさん
2015/04/07(火) 00:42:36.87ID:eLsJnCwY> #define 0 NULLなら同じ
は>>248への回答と強弁しています。
>>248は
> 気のせいだったかもしれないのですがたしか標準のヘッダにNULLが0でdefineしてあった気がしたのですが...
> 気のせいかも
なので、何の回答なんでしょうか。全く意味がわかりませんねえ。
バカが必死で考えたんだろうけど。全然釈明になっていません。笑えますねえ。
バカですねえ。マヌケですねえ。死んだ方が良いですねえ。
ここからは想像だけど、ポインタの内部表現が0でない処理系がある事は知っ
ていたけど、そういう処理系はその内部表現にNULLを定義すると信じていたん
だろうね。
足りない頭で言いつくろったばかりに疵を広げる結果になってしまいましたね。
バカですねえ。マヌケですねえ。死んだ方が良いですねえ。
0453デフォルトの名無しさん
2015/04/07(火) 01:00:19.52ID:iCEcfKSN無意味な同一人物視と論点ずらしか
構造体にmemsetする場合という前提で質問してるだろ
「ダメ」じゃなく「ダメな場合もある」
>>452
こんだけ連投とかどんだけ必死なんだよ
NULLが0でdefineしてあった気がした
→じゃあ同じ
何もおかしくは無い
0454デフォルトの名無しさん
2015/04/07(火) 01:05:02.64ID:eLsJnCwY何と同じなんだよ。
0455デフォルトの名無しさん
2015/04/07(火) 02:06:05.16ID:Z8okfIrgに対して、それ(#define NULL 0)の状況なら同じって意味だろ。
規格上規格上ってどの規格の事言ってんの。
それこそ質問者の環境の規格が分からんだろ
0456デフォルトの名無しさん
2015/04/07(火) 02:16:13.46ID:ogNBYyHdNULLポインタがバイナリ値ゼロじゃないとか
そんな環境は未来永劫現れないということは断言しとくよ
無能ってのは無意味なことに無駄な時間を費やすものだなあ
0457デフォルトの名無しさん
2015/04/07(火) 02:48:49.21ID:eLsJnCwY何と何が同じなんだよ
0458デフォルトの名無しさん
2015/04/07(火) 02:59:58.35ID:iCEcfKSN既に上で言われてるだろ
忘れたのなら読み返した方が後々混乱は無いと思うぞ
0459デフォルトの名無しさん
2015/04/07(火) 04:50:40.03ID:H200pvkI言葉でコード化したいこと説明するのでおしえてくださぃ><
1.プロセス(test.exe)をオープンする。
test.exeが存在しなければ「test.exeを起動してください」メッセージ出して終了
2.プロセスメモリのアドレス1とアドレス2の値の変化を監視。
アドレス1の値が""xx"" の時に、アドレス2の値が"yy" に変化したなら、クリックを連打する。
アドレス1の値がxxじゃなくなったらクリック終了。アドレス2の値がyyじゃなくなってもクリック終了。
2.の最初に戻って監視。
0460デフォルトの名無しさん
2015/04/07(火) 05:05:08.47ID:iCEcfKSNWin32API質問箱 Build11 [転載禁止](c)2ch.net
ttp://peace.2ch.net/test/read.cgi/tech/1418181169/
0461デフォルトの名無しさん
2015/04/07(火) 08:22:58.44ID:/U9ZAOiy+0 と -0 があるんじゃなかった?
0462デフォルトの名無しさん
2015/04/07(火) 10:11:07.27ID:ogNBYyHdあるよ
バイナリ値ゼロが+0で符号ビットを立てると-0だ
float、doubleのデフォルト初期化は+0だ
0463デフォルトの名無しさん
2015/04/07(火) 11:25:27.84ID:PwnlWq+Rクラックやボットは板違い
0464デフォルトの名無しさん
2015/04/07(火) 12:12:19.25ID:zzJeQi4N0465デフォルトの名無しさん
2015/04/07(火) 12:47:41.50ID:eLsJnCwY「そうじゃない」と頭の悪い言い逃れするだろうから、お前からはっきり聞きたい。
> 忘れたのなら読み返した方が後々混乱は無いと思うぞ
↓この発言を忘れてるだろ。もっと頭の悪い言い逃れを垂れ流して、もっともっと笑わせてくれ。
275 :デフォルトの名無しさん:2015/04/03(金) 17:14:33.84 ID:Vwd4pRr2
なんか質問した俺が置いてきぼりされてるんだがw
結局構造体にポインタがある場合でもとりあえず
memsetで0埋めしてからポインタをNULLで初期化する関数を用意してやれば
いいのん?
281 :デフォルトの名無しさん:2015/04/03(金) 18:08:27.80 ID:qd46Xef5
>>275
いきなり>>254が「ビットパターン」を持ち出してきたから意味不になってるけど
ソース上はp=0とp=NULL同じだから
0でmemsetしたらそれでいいよ
0466デフォルトの名無しさん
2015/04/07(火) 14:46:44.81ID:H200pvkIたらい回しにしようとしないでください!!
Win32APIとかゆうのじゃなくてC言語のことがしりたいんです
このスレ初心者歓迎って書いてあるのに・・
わたしはまだ入門書の最初のページ読んで hello worldのしかやってないんです
でも>>459のプログラムだけは早く作らないといけないのでC言語のスレできいています!
>>463
ちがいます、クラックでもボットでもないし
クリック連打がいけないの? それなら連打じゃなくて押したままにするだけでもいいですよ?
C言語の入門書をなくしてしまい皆さんだけが頼りです・・・
>>459のサンプルソースください
0467デフォルトの名無しさん
2015/04/07(火) 16:20:09.53ID:F8K01pe/0468デフォルトの名無しさん
2015/04/07(火) 16:31:22.24ID:iCEcfKSNまた同一人物視か
もう好きに思っててくれ
>>466
サンプルもWin32API使うからあっちのスレ行って
0469デフォルトの名無しさん
2015/04/07(火) 16:58:01.16ID:H200pvkICでできない所はAPI使ってもいいですよ?
Win32APIスレだと何の言語でもいいみたいなので嫌です
Cじゃないと嫌なんです絶対にCがいいです
0470デフォルトの名無しさん
2015/04/07(火) 17:46:23.37ID:qdvYFl17英語スレに質問に来るようなものだ。
0471デフォルトの名無しさん
2015/04/07(火) 18:24:14.03ID:Z8okfIrghttp://nienie.com/~masapico/api_sample_ps05_c.html
win32apiもC言語で書かれてるよ。
apiが嫌なら、apiの関数分解して全部貼っていけば良い。
理解できんと思うけど
0472デフォルトの名無しさん
2015/04/07(火) 19:25:03.25ID:PwnlWq+R0473デフォルトの名無しさん
2015/04/07(火) 19:27:12.73ID:H200pvkI0474デフォルトの名無しさん
2015/04/08(水) 10:58:07.49ID:XdCBxPUbくたばれ
0475デフォルトの名無しさん
2015/04/09(木) 16:36:27.51ID:8NRZXusyそもそもtestが何をするプログラムなのかも不明だし
よくわかんないけどMyCreateChildAndPipe関数で子プロセスと 匿名パイプつかって
ごにょごにょするんかね?
0476デフォルトの名無しさん
2015/04/09(木) 17:13:14.81ID:8NRZXusy0477デフォルトの名無しさん
2015/04/09(木) 17:18:19.49ID:8NRZXusymsdnにパイプ関連のリファレンス乗ってるからそれみてくるか
winAPIプログラムのスレにいくべき
0478デフォルトの名無しさん
2015/04/09(木) 18:18:19.82ID:UNmeJEggデバッガ用apiでも使わなきゃ出来ないんじゃね?
0479デフォルトの名無しさん
2015/04/10(金) 16:17:36.83ID:UXaEjvcw0480デフォルトの名無しさん
2015/04/10(金) 16:20:28.26ID:UXaEjvcw関数の引数に渡して配列をコピーする場合は
#include <stdio.h>
#include <string.h>
typedef int HAIRETSU[5];
typedef struct{ HAIRETSU hai; }KOUZOTAI;
void set(KOUZOTAI* p_st, HAIRETSU hai)
{
memcpy(p_st->hai, hai, sizeof(HAIRETSU));
}
void disp(KOUZOTAI* p_st)
{
for(int i=0; i<5; ++i)
printf("st.hai[%d] = %d\n", i, p_st->hai[i]);
}
int main()
{
HAIRETSU hai = {1, 2, 3, 4, 5};
KOUZOTAI st = {0};
disp(&st);
set(&st, hai);
disp(&st);
return 0;
}
みたいなかんじで宜しいですか?
0481デフォルトの名無しさん
2015/04/10(金) 19:46:25.71ID:6mfRBVMy宜しいです。
ただ、関数に渡されるのがポインタだと知っているのなら、ポインタで受ける方が
分かりやすくてよいでしょう。
その例では、配列の大きさが分かって便利のように見えますが、本当にその大きさの
配列が渡される保証はありません。
0482デフォルトの名無しさん
2015/04/10(金) 20:04:57.68ID:UXaEjvcw”ポインタで受ける方がわかりやすくて良いでしょう”なのですが、
どのような表記にすればわかりやすくなるでしょうか?
参考までに例を書いていただけると嬉しいです^^
あと、本当にその大きさの配列が渡される保証はありませんのところをもう少し詳しくお願いします
m(_ _)m
0483デフォルトの名無しさん
2015/04/10(金) 20:07:13.49ID:UXaEjvcw別関数で要素数をsizeofでチェックできないので引数で要素数を渡さなければいけない
という知識はあります
0484デフォルトの名無しさん
2015/04/10(金) 21:16:50.34ID:AgT+3q87それって_countof()
int a[5];
_countof(a) = 5
0485デフォルトの名無しさん
2015/04/11(土) 01:09:47.46ID:paw6lFbk#include <stdio.h>
#include <string.h>
#define NUM 5 /*配列の要素数*/
typedef struct KOUZOUTAI{
int array[NUM];
}S_kouzoutai;
void set(S_kouzoutai *p_st, int *hai, int num)
{
memcpy(p_st->array, hai, sizeof(int)*num);
}
void disp(S_kouzoutai *p_st)
{
int i;
for ( i = 0; i < 5; ++i) printf("st->hai[%d] = %d\n", i, p_st->array[i]);
}
int main(void)
{
int hai[NUM] = { 1, 2, 3, 4, 5 };
S_kouzoutai st = { 0 };
printf("====コピー前です====\n");
disp(&st);
printf("====コピーします====\n");
set(&st, hai, NUM);
disp(&st);
return 0;
}
0486デフォルトの名無しさん
2015/04/11(土) 01:36:52.73ID:dDVvge2Wなるほど私のはtypedefしてましたが、int*とすれば明示的ですね
ありがとうございます
0487デフォルトの名無しさん
2015/04/11(土) 02:22:28.31ID:yiXu9fzw0488481
2015/04/11(土) 23:29:09.52ID:37h/xSpQ>>どのような表記にすればわかりやすくなるでしょうか?
コード例はまさに >>485の通りですが、一応補足します。
ご存知のように関数の引数に配列を指定すると、先頭のポインタが渡されます。
しかし、>>481 のコードを見ると、HAIERTU型の変数全体が値渡しで渡されるように
見えるので、誤解の恐れがあることを指摘しました。
>>あと、本当にその大きさの配列が渡される保証はありませんのところをもう少し詳しくお願いします
set関数は HAIRETU型の変数を第二パラメータに渡してほしいのだろうと
思いますが、int * 相当であれば渡せてしまいます。
例えば、
typedef int BIG_HAIRETU[ 100 ];
BIG_HAIRETU big_hai;
という別のデータ型であっても
set(&st, big_hai);
と渡せます。
一般的にはこういう、見た目(渡せないはず)とコンパイラの挙動(渡せちゃう)が
異なるのは紛らわしいコードだと思います。
分かった上で、あえてやるのなら構わないと思いますが
0489デフォルトの名無しさん
2015/04/11(土) 23:30:04.35ID:37h/xSpQ○しかし、>>480 のコードを見ると、
0490480
2015/04/12(日) 06:24:19.21ID:Z7ZgJ49b他人から見たらわかりづらい表記でしたね
次からもう少し気をつけようと思います
0491Office & Gamers ◆G144Hzgh2.0e
2015/04/12(日) 07:16:12.49ID:qV7OJBYF0492Office & Gamers ◆G144Hzgh2.0e
2015/04/12(日) 07:18:25.93ID:qV7OJBYF0493Office & Gamers ◆G144Hzgh2.0e
2015/04/12(日) 07:20:05.88ID:qV7OJBYFそれやっても意味ないと思うw
0494デフォルトの名無しさん
2015/04/12(日) 11:57:48.74ID:uieaeE3yこの様な処理ですが…
"array" で、再処理をしようとして String と数字の割り当ての考え方を間違えて居るのではないでしょうか…
Operator or semicolon missing before *p_st at test.txt line 9.
Ambiguous use of * resolved as operator * at test.txt line 9.
Operator or semicolon missing before *num at test.txt line 11.
Ambiguous use of * resolved as operator * at test.txt line 11.
Operator or semicolon missing before *p_st at test.txt line 14.
Ambiguous use of * resolved as operator * at test.txt line 14.
syntax error at test.txt line 6, near "array["
syntax error at test.txt line 10, near ")
{"
syntax error at test.txt line 18, near ")
printf"
syntax error at test.txt line 23, near "hai["
syntax error at test.txt line 24, near "0]"
syntax error at test.txt line 31, near "}"
Execution of test.txt aborted due to compilation errors.
0495Office & Gamers ◆G144Hzgh2.0e
2015/04/12(日) 12:12:13.06ID:kx9iDNgY0496デフォルトの名無しさん
2015/04/12(日) 17:56:43.29ID:y8PA+brmよく分からないです。もっとくわしく
0497デフォルトの名無しさん
2015/04/12(日) 18:31:04.70ID:Z7ZgJ49bお前なに言ってんの?
少なくとも>>480のソースに問題は無いし
配列のコピーだって普通に使うんだが、
ましてや宿題だったら問題なく解決してるんだから確認とかだけだろ普通に考えてw
糞コテ乙
0498デフォルトの名無しさん
2015/04/12(日) 18:42:57.60ID:Z7ZgJ49b私の勘違いだったら申し訳ないんだが.cじゃなくて.txtでコンパイルしてない?
それだったらエラーがでて当然だと思うのだけど...
0499Office & Gamers ◆G144Hzgh2.0e
2015/04/13(月) 00:34:53.70ID:zG5LWDsu>配列のコピーだって普通に使うんだが、
フツーに使わないよw
学校の宿題モロバレw
はい、再履修wwww”
0500デフォルトの名無しさん
2015/04/13(月) 00:46:25.96ID:aToeytaoなんで宿題ならここで書くんだよ
専用のスレがあんだろが
そもそも宿題だろうが宿題じゃなかろうが
お前に関係ない話だろ
まぁ説明させてもらえば
遊びでオセロのプログラムをちょいと書こうと思ってるんだが
そのときにAIに継盤使わせる為に盤面の配列をコピーしてくるっていう考えだったんだけど
まぁお前には関係ないよな
質問の邪魔とかするならとっととどっかいってくれどんだけ暇なんだよニートか?
0501Office & Gamers ◆G144Hzgh2.0e
2015/04/13(月) 00:52:06.59ID:zG5LWDsu別にコピーしなくていいじゃんw
0502デフォルトの名無しさん
2015/04/13(月) 00:55:34.24ID:aToeytao現在の局面と比較しないといけないんだぞ
0503デフォルトの名無しさん
2015/04/13(月) 00:56:00.23ID:JkRGi7G6本題で反論できないから暇やニートを持ち出すしかないのか?
「実際に使用している構造体かそれに似せた構造体」を使ったコピーの例題で質問しないと意味無くね
メンバ1つなら>>480何してんだそれってなるし
0504デフォルトの名無しさん
2015/04/13(月) 00:57:52.76ID:aToeytaoAI用の継盤で数手指させて
比較するんならしょせん[8][8]の多次元配列なんだから
2つ用意して検討させた方がいいだろ?
それとも別のもっと効率のいい方法があるなら
お教えねがえますかね?そしたら採用してやるよw
0505デフォルトの名無しさん
2015/04/13(月) 00:59:33.81ID:aToeytaoあくまで例だから必要最低限の部分しかかかなかったんだよ
悪かったね。
0506Office & Gamers ◆G144Hzgh2.0e
2015/04/13(月) 01:01:55.02ID:zG5LWDsu>現在の局面と比較しないといけないんだぞ
おまえが勝手にそう考えてんだろw
0507デフォルトの名無しさん
2015/04/13(月) 01:04:59.47ID:aToeytaoあとさお前、人のこと批判するだけで具体的な案を提示できないんだから
人に不快感与えてるんじゃねえかな?
少なくとも俺は不快だよ
もし必要ないんだったら必要ないなりのソースを数行で良いから示すとかしてくれ
そうじゃなかったら単なるノイズ
0508デフォルトの名無しさん
2015/04/13(月) 01:07:06.57ID:aToeytaoお前がそう考えてるんだろw<そうだよ少なくとも今はそのアイデアで行こうとおもってる
なんかほかに良案があるのか?なら実際に示せ
0509Office & Gamers ◆G144Hzgh2.0e
2015/04/13(月) 01:10:04.34ID:zG5LWDsu0510デフォルトの名無しさん
2015/04/13(月) 01:11:41.80ID:aToeytaoひとりでシコシコしてろおやすみ(笑
0511Office & Gamers ◆G144Hzgh2.0e
2015/04/13(月) 01:13:50.93ID:zG5LWDsu0512Office & Gamers ◆G144Hzgh2.0e
2015/04/13(月) 01:17:14.68ID:zG5LWDsuフツーに使わないよw
学校の宿題モロバレw
はい、再履修wwww”
0513デフォルトの名無しさん
2015/04/13(月) 01:40:40.53ID:JkRGi7G6じゃあとりあえずchar[8]で盤面の表現だな
ビット演算
x 1 2 3
y
char[1]
char[2]
char[3]
0514デフォルトの名無しさん
2015/04/13(月) 01:42:26.48ID:JkRGi7G6char[9]にしてchar[0]を捨ててchar[1〜8]を使用するなら上の感じで
0515Office & Gamers ◆G144Hzgh2.0e
2015/04/13(月) 01:43:07.19ID:zG5LWDsu0516Office & Gamers ◆G144Hzgh2.0e
2015/04/13(月) 01:44:45.77ID:zG5LWDsu0517デフォルトの名無しさん
2015/04/13(月) 06:45:40.02ID:JkRGi7G60518Office & Gamers ◆G144Hzgh2.0e
2015/04/13(月) 08:07:22.47ID:zG5LWDsu0519デフォルトの名無しさん
2015/04/13(月) 13:01:43.05ID:mroSQvvT0520デフォルトの名無しさん
2015/04/13(月) 13:59:54.96ID:I+1IEm0Z0521デフォルトの名無しさん
2015/04/13(月) 14:35:47.58ID:Y8nurpVH0522デフォルトの名無しさん
2015/04/13(月) 14:40:28.05ID:aToeytaoいやなるほどビット演算を使った方がより高速化できるよなそりゃ
普通にint board[8][8]で処理するより効率的だよな
Office & Gamers ◆G144Hzgh2.0eは学校に怨みでもあるのかよwwwwwwwww
0523デフォルトの名無しさん
2015/04/13(月) 22:06:03.60ID:mroSQvvTまだ気づかないとか、さすがに低能過ぎるだろ。
0524デフォルトの名無しさん
2015/04/13(月) 22:19:03.19ID:SFia1K29aA0 の3パターンを[0]から[7]
bB0
cC0
dD0
eE0
fF0
0525デフォルトの名無しさん
2015/04/13(月) 22:25:21.35ID:9EsgSL1z圧縮するしかないが。。。
情報の偏りによらず常に 2/3 に見込める圧縮はあるのかな
0526Office & Gamers ◆G144Hzgh2.0e
2015/04/14(火) 01:13:35.86ID:0kYWajMh0527デフォルトの名無しさん
2015/04/14(火) 06:31:18.51ID:4FPwD7PA> ビット演算
これは明らかに
遊びなら[8][8]なんて使ってるよりビット表現の練習でもしてみたら
という提案だろ
char[2][8]にでもして
[0][y]は置いてるかどうか
[1][y]は色にしたらいいだけの話
0528デフォルトの名無しさん
2015/04/14(火) 07:07:24.86ID:2RKS9wsy0529Office & Gamers ◆G144Hzgh2.0e
2015/04/14(火) 12:14:21.04ID:TG3Z0R9j0530片山博文MZ ◆T6xkBnTXz7B0
2015/04/14(火) 12:17:30.15ID:WdcxbNEq0531デフォルトの名無しさん
2015/04/14(火) 14:47:41.79ID:4FPwD7PA8ビット統一以前の古い環境を使う必要性
0532デフォルトの名無しさん
2015/04/14(火) 20:43:51.10ID:lp/cDZ7v人を煽ることしか出来ない低能
0533デフォルトの名無しさん
2015/04/14(火) 21:57:34.40ID:4FPwD7PA0534デフォルトの名無しさん
2015/04/15(水) 00:46:30.88ID:9nQYQHvG0535デフォルトの名無しさん
2015/04/15(水) 00:53:45.97ID:9nQYQHvG0536デフォルトの名無しさん
2015/04/15(水) 00:59:03.93ID:+bkdwQvd実際の94は既に埋まって今は95が進行中
まじめに相談したければ
【初心者歓迎】C/C++室 Ver.95【環境依存OK】 [転載禁止]©2ch.net
http://peace.2ch.net/test/read.cgi/tech/1423872914/
0537デフォルトの名無しさん
2015/04/15(水) 01:05:40.31ID:9nQYQHvGで案の定"【初心者歓迎】C/C++室 Ver.95【環境依存OK】 [転載禁止]©2ch.net "も荒れてるんだがw
私情は別にして何でプログラマって他者に対して攻撃的になるんだろうな
プログラマ板に張り付いてるとしみじみ思うわw
0538デフォルトの名無しさん
2015/04/15(水) 01:16:25.40ID:5TWWmEKtcvWaitKey(0)
printf("1\n")
でwaitkeyが無視されて勝手に進むんですが原因教えてください
0539デフォルトの名無しさん
2015/04/15(水) 01:19:33.54ID:9nQYQHvGおれはよくわからんがとりあえず全体のコード貼らないとそもそもwaitkeyがなにをするのか
よくわからんし
0540デフォルトの名無しさん
2015/04/15(水) 01:23:18.33ID:9nQYQHvGあんまり無駄にレス増やしてもしょうがないし
0541Office & Gamers ◆G144Hzgh2.0e
2015/04/15(水) 01:23:33.77ID:6vmnXgxy0542デフォルトの名無しさん
2015/04/15(水) 01:29:44.76ID:9nQYQHvGちょっとした質問なのだけれど、
cの入門サイトだと配列のコピーの知識を取り上げてるサイトを見かけるけど
必要なかったら取り上げないと思うのだけれどそこのところ実際どうなの?
0543デフォルトの名無しさん
2015/04/15(水) 01:33:56.25ID:5TWWmEKtできました。ちゃんと貼れてますでしょうか
ポスタリゼーション(二値化を4段階にわけたもの)を行い、ヒストグラムも表示したいのですが
その処理の前にグレースケールのgray_imgをCloneしたpost_imgが表示できません。灰色の画面が出るだけです。
3時間ぐらい悩んで気づいたのですがコマンドプロンプトをみると1 1と出ているのにcvWaitKey(0)でキー入力を待たずに
直後のNameWindowが出ていて、もう意味がわからずお手上げになってしまった状態です
0544Office & Gamers ◆G144Hzgh2.0e
2015/04/15(水) 01:34:06.31ID:6vmnXgxy0545Office & Gamers ◆G144Hzgh2.0e
2015/04/15(水) 01:36:49.57ID:6vmnXgxyとりあえず自分でプログラム書いてみようやw
エラーメッセージにコピペって書いてあるぞw
0546Office & Gamers ◆G144Hzgh2.0e
2015/04/15(水) 01:38:08.70ID:6vmnXgxy0547デフォルトの名無しさん
2015/04/15(水) 01:38:48.33ID:9nQYQHvGこれだけ貼られても困るというか
もうちょっとコンパクトに質問した方がいんでないの?
0548デフォルトの名無しさん
2015/04/15(水) 01:41:30.07ID:5TWWmEKt0549デフォルトの名無しさん
2015/04/15(水) 01:54:21.04ID:5TWWmEKtNamedWindowをcvWaitKeyの後ろではなく手前に持ってくることで解決しました。
0550デフォルトの名無しさん
2015/04/15(水) 01:54:37.75ID:9nQYQHvGウィンドウを生成する前にcvWaitKey()してない?
なんか所々cvWaitKey()しすぎててエラー起こしそうなんだけど
0551Office & Gamers ◆G144Hzgh2.0e
2015/04/15(水) 02:16:56.11ID:6vmnXgxy0552デフォルトの名無しさん
2015/04/15(水) 02:19:33.53ID:OBp2TzOFhttp://bicycle.life.coocan.jp/takamints/index.php/doc/opencv/doc/highgui_sample
を読んで思ったこと。。
>>543は
cvInitSystem(argc, argv); // main()のargc, argv
を最初に呼ばなくて良いの?
0553デフォルトの名無しさん
2015/04/15(水) 02:27:36.65ID:OBp2TzOFhttp://bicycle.life.coocan.jp/takamints/index.php/doc/opencv/function/cvInitSystem
によると、
> 最初のウィンドウがcvNamedWindowで生成される前に、この関数(cvInitSystem)が
> 呼び出されていない場合は、暗黙に(cvNamedWindow内で)cvInitSystem(0,NULL);が
> 呼び出されたものとして扱われます。
なので、>>543の39行目のcvNamedWindow以降のcvWaitKey(83行目とか)は
正常にキー待ちするんだろうね。
と想像できる
0554Office & Gamers ◆G144Hzgh2.0e
2015/04/15(水) 02:39:28.13ID:6vmnXgxy0555デフォルトの名無しさん
2015/04/15(水) 02:41:58.06ID:OBp2TzOF0556デフォルトの名無しさん
2015/04/15(水) 02:51:14.63ID:5TWWmEKtおお、すごい便利なコマンドですね
argcは恥ずかしながら意味を理解してません...2週間前からはじめたもので
0557Office & Gamers ◆G144Hzgh2.0e
2015/04/15(水) 03:14:16.35ID:6vmnXgxy0558デフォルトの名無しさん
2015/04/15(水) 03:23:44.99ID:OBp2TzOFとりあえず、>>543の24行目
int y,x,k,j;
の次の行に
cvInitSystem(argc, argv);
を入れて、25,35行目のcvWaitKey(0);がちゃんとキー待ちするか教えてほしい。
俺の後学のために。
0559デフォルトの名無しさん
2015/04/15(水) 21:14:27.91ID:N4qRGHT9cvInitSystemを挟みましたが、cvWaitKeyを無視して進みました。
0560デフォルトの名無しさん
2015/04/16(木) 01:01:12.32ID:XyyhtFltそうですか。
cvWaitKeyはcvNamedWindowの後じゃないとだめなのか…
0561Office & Gamers ◆G144Hzgh2.0e
2015/04/16(木) 01:05:11.28ID:sQiZAhF+0562Office & Gamers ◆G144Hzgh2.0e
2015/04/17(金) 07:05:56.21ID:dW7xxEmp0563デフォルトの名無しさん
2015/04/17(金) 07:38:08.05ID:uUydW80Kクイズ アタック25みたいな
0564デフォルトの名無しさん
2015/04/17(金) 09:15:36.27ID:x61uigHY角や端を取る戦略がなくなる
0565デフォルトの名無しさん
2015/04/17(金) 17:48:25.79ID:uUydW80K0566デフォルトの名無しさん
2015/04/17(金) 19:02:09.08ID:KDCE8l09取れる石がないときにどこにおけるかを真っ先にルール化しる
0567デフォルトの名無しさん
2015/04/17(金) 19:40:50.57ID:+6nSsPCG0568デフォルトの名無しさん
2015/04/17(金) 20:34:00.86ID:ui/e4LFK<i+8N, j+8N>を満たす全ての地点に同時に置けるみたいな
0569デフォルトの名無しさん
2015/04/17(金) 20:54:35.00ID:uUydW80K・盤面は奇数×奇数で、ゲーム開始時は石が無い
・最初に置く人は真ん中にしか置けない
・自分の色ではさめないときは、隣(上下左右)に石のある
空いたマスならどこにでも置ける(下図AA参照)
┼─┼─┼─┼
│×│○│×│ @ = 元からある石 (自分の石でも良い)
┼─┼─┼─┼ ○ = 隣りなので 置ける
│○│@│○│ × = 斜めなので 置けない
┼─┼─┼─┼
│×│○│×│
┼─┼─┼─┼
で いかがでしょう
0570デフォルトの名無しさん
2015/04/17(金) 21:30:45.13ID:Tdo+Kd0wそういう書き方やめてくれない?
深刻に悩んで質問に来てる人もいるんだよ
憂さ晴らしならほかの板でやってくれ
0571デフォルトの名無しさん
2015/04/18(土) 00:03:52.09ID:Fsy3ZZZHためしに1つのファイルにまとめたら実行できたから、コード自体は間違ってないと思うんだが・・・
ちなみにeclipseでもvisual studioでも同じエラーだった
エラーは以下
error LNK2019: 未解決の外部シンボル "public: __thiscall stack::~stack(void)" (??1stack@@QAE@XZ) が関数 _main で参照されました。
error LNK2019: 未解決の外部シンボル "public: bool __thiscall stack::empty(void)" (?empty@stack@@QAE_NXZ) が関数 _main で参照されました。
error LNK2019: 未解決の外部シンボル "public: __thiscall stack::stack(int)" (??0stack@@QAE@H@Z) が関数 _main で参照されました。
ソースは以下
http://codepad.org/BefOJsPl
0572デフォルトの名無しさん
2015/04/18(土) 00:11:42.77ID:GjpShsm8関数の実体がない。
0573デフォルトの名無しさん
2015/04/18(土) 00:16:00.42ID:Fsy3ZZZH正しくリンクできてないってことだよな?
その線疑ってネットから拾った適当なサンプル実行をしてみたら出来たんだよ
それに1つのファイルにまとめたら実行できたってのは関係ないの・・・?
0574デフォルトの名無しさん
2015/04/18(土) 00:27:30.53ID:c7orzAZP0575デフォルトの名無しさん
2015/04/18(土) 00:39:28.70ID:Fsy3ZZZH基本eclipseかvisual studio(2013)使ってるからコマンドは疎いから怪しいんだが、
中身だけをネットからのサンプルに書き換えたら実行できるんだ
だから設定周りじゃなくてソースのせいかと思ってる
0576Office & Gamers ◆G144Hzgh2.0e
2015/04/18(土) 00:44:13.12ID:yZFnrc/60577デフォルトの名無しさん
2015/04/18(土) 00:53:25.61ID:AA/Gmt4Lここまで実装(.cpp)ファイル の部分をリンクしてないだけのような気がするが
0578デフォルトの名無しさん
2015/04/18(土) 01:03:38.37ID:HeTG71Joソース自体は問題ないと思われます
0579デフォルトの名無しさん
2015/04/18(土) 01:06:18.63ID:HeTG71Jo分割コンパイル です
0580デフォルトの名無しさん
2015/04/18(土) 01:17:34.89ID:Fsy3ZZZHありがとう
じゃあ設定かな
サンプルプログラムは動いたからリンカは生きてると思うんだがなぁ
0581デフォルトの名無しさん
2015/04/18(土) 01:26:42.22ID:d+XtVUDX空プロジェクトを新規作成して
既存ファイルを追加でやったらいいんでない?
0582デフォルトの名無しさん
2015/04/18(土) 01:43:15.85ID:R28h8IPAclass stack;が定義された.cpp(?)がプロジェクトに追加されていないだけかな
>>577>>581が言うのもそういうことだと思う
0583デフォルトの名無しさん
2015/04/18(土) 01:47:26.17ID:Fsy3ZZZHそういうことだったのか
だが既存を追加でも一緒だわ
何よりプロジェクト自体はそのままに、
ソースコードの中身だけをサンプルに書き換えたら動くんだ
0584デフォルトの名無しさん
2015/04/18(土) 07:30:30.73ID:d+XtVUDXVC++ 2010 Express Editionで試してみたけどビルド通ったよ
手順としては
空のプロジェクト新規作成
→予め作成しておいたSTACK・STACK.cpp・main.cppを既存のファイル追加でプロジェクトに追加
→ビルド
で特に設定弄ったりはせずデフォルトのまま
0585デフォルトの名無しさん
2015/04/18(土) 10:42:56.19ID:Fsy3ZZZH実行できた?
kokoroって出ると思うんだが
0586デフォルトの名無しさん
2015/04/18(土) 11:43:46.05ID:rDjGqZMx付けるのはどういう意味ですか?
0587デフォルトの名無しさん
2015/04/18(土) 12:33:15.79ID:mIKxN8Vw「ボクはバカです」
0588デフォルトの名無しさん
2015/04/18(土) 16:02:44.03ID:LIzajD410589デフォルトの名無しさん
2015/04/18(土) 16:05:03.03ID:LIzajD410590デフォルトの名無しさん
2015/04/18(土) 16:53:43.72ID:d+XtVUDXできたよ
ttp://i.imgur.com/46Cw6hR.jpg
0591デフォルトの名無しさん
2015/04/18(土) 17:46:15.01ID:R28h8IPAまさかと思うけど、ヘッダファイルが拡張子なしの STACK だから何かおかしくなってるのでは
0592デフォルトの名無しさん
2015/04/18(土) 18:19:31.64ID:rDjGqZMx真面目にお答えいただけないでしょうか?
0593デフォルトの名無しさん
2015/04/18(土) 21:10:38.42ID:a6bu9/Ilメンバ変数ってことじゃね?
0594デフォルトの名無しさん
2015/04/18(土) 21:19:23.76ID:/l4K2B19おおおお
ってことはやっぱなんか設定というか環境が間違ってんのか
それが分かっただけでもありがたいわ
>>591
.hつけてみたがダメだったわ
0595デフォルトの名無しさん
2015/04/18(土) 21:32:27.50ID:rDjGqZMxあっ、名前かぶり防止ですかローカル変数との名前のぶつか
リはスコープ演算子でなんとかなりますが、メンバー関数名とメンバー変数
が名前がぶつかったときは名前を変えない
と防げないからですか
0596デフォルトの名無しさん
2015/04/18(土) 22:58:04.95ID:R28h8IPAmakefile出力して、codepadに貼り付けてみたら
0597デフォルトの名無しさん
2015/04/18(土) 23:25:45.47ID:d+XtVUDXフィルターのリソースにソースが入ってるけど気にしないで
今見直して気付いたw
0598デフォルトの名無しさん
2015/04/18(土) 23:50:37.30ID:R28h8IPA俺も実行できたのを貼っとこう。
Linuxのeclipseで
http://i.imgur.com/yFl42dy.png
0599デフォルトの名無しさん
2015/04/20(月) 12:11:41.79ID:2zZykn4x0600デフォルトの名無しさん
2015/04/20(月) 15:30:55.77ID:WV2Mpxpu自分でベテラン限定スレ立てれば?
0601デフォルトの名無しさん
2015/04/21(火) 00:17:03.91ID:UJ2UkLE+まあ防げんこともないけどな
thisとか使えば
0602デフォルトの名無しさん
2015/04/21(火) 00:26:54.67ID:Dafs32Hw0603デフォルトの名無しさん
2015/04/21(火) 01:18:44.91ID:aTU/XB0Vこれで問題が起こったことはない
0604デフォルトの名無しさん
2015/04/21(火) 09:47:27.79ID:4Ab23aFHすべて小文字でアンダースコアのチェインにならない(+ 6文字以下?) を満たすと
標準関数と名前がぶつかるかもしれない?ぐらい?
あやしげなのは1単語の変数名か
0605デフォルトの名無しさん
2015/04/21(火) 12:32:09.80ID:ohVI9ioQ0606デフォルトの名無しさん
2015/04/26(日) 21:59:11.16ID:eg/btpQmvoid CMFCDlgFoo::OnBnClickedButton1()
{
std::thread th = std::thread([](){});
th.join();
}
を実行すると
Detected memory leaks!
Dumping objects ->
{530} normal block at 0x0045ABF8, 44 bytes long.
と出力されるんですが、これは当たり前ですか?
0607デフォルトの名無しさん
2015/04/27(月) 00:48:35.31ID:QwoO9IPF0608デフォルトの名無しさん
2015/04/27(月) 01:11:22.53ID:GwSXEb5h>>606
それはVS2012のバグ
https://connect.microsoft.com/VisualStudio/feedback/details/773429/memory-leak-for-std-thread
0609デフォルトの名無しさん
2015/04/27(月) 05:34:31.61ID:dxxvEIaEだからdeleteしてないんだろ
0610デフォルトの名無しさん
2015/04/27(月) 08:10:48.50ID:OQJgrPlS0611デフォルトの名無しさん
2015/04/27(月) 15:57:37.47ID:GeaiLZXgpriority_queue<event, vector<event>, greater<event> > hoge
と書いたらgreaterはテンプレートではありませんって怒られるんだけど
0612デフォルトの名無しさん
2015/04/27(月) 17:46:26.38ID:45R52P+00613デフォルトの名無しさん
2015/04/27(月) 17:47:02.75ID:45R52P+00614デフォルトの名無しさん
2015/04/27(月) 18:44:46.10ID:GeaiLZXg比較のオーバーロードはしてた
けど<functional>をインクルードしたらできた
ありがとう
0615デフォルトの名無しさん
2015/04/29(水) 13:50:01.54ID:Bg6ZLegtバグを放置して、新しいのを購入しろか・・・
0616デフォルトの名無しさん
2015/04/29(水) 14:24:50.76ID:No5D67KYBase::Base(procSubClass)
{
// 登録と変数へ保存
}
Sample::Sample() : Base(this->関数名)
{
}
0617デフォルトの名無しさん
2015/04/29(水) 14:25:57.46ID:No5D67KY実行するのではなくSetWindowSubclassで登録とメンバ変数へ保存する目的
0618デフォルトの名無しさん
2015/04/29(水) 14:29:52.29ID:jGX7gUOM0619デフォルトの名無しさん
2015/04/29(水) 14:44:29.38ID:EXa808IeBase コンストラクタを起こしてるときの引数で this 使用
class の static メンバ/関数 でないかぎり無理っぽくない?
0620デフォルトの名無しさん
2015/04/29(水) 14:53:29.59ID:0GRJwfE70621デフォルトの名無しさん
2015/04/29(水) 18:31:27.08ID:No5D67KYBaseコンストラクタ->Sampleコンストラクタの流れが完了するまでび間に登録する関数が何をしてるかって事かな
>>619
サブクラスプロシージャなのでstatic
という事はTimerProcやThreadProcもstaticだから問題無いって事でいいのかな
0622618
2015/04/29(水) 22:02:14.07ID:pVJkQfS9すまんが嘘を言った
生成破棄中は純粋仮想関数の「呼び出し」だけが禁止されている
それ以外は何をしても問題ない
0623デフォルトの名無しさん
2015/04/30(木) 08:54:27.57ID:bghsO/1y0624デフォルトの名無しさん
2015/04/30(木) 15:58:42.41ID:bghsO/1ySample::Sample() : Base(this->関数名)
Sample::Sample() : Base(Sample::関数名)
この置き換えも保障されてる?
複数のSampleクラスがnewされてる場合関数アドレスは常に等しい?
0625デフォルトの名無しさん
2015/04/30(木) 20:21:49.23ID:+7zpztn5#include <iostream>
class Omaera
{
public:
void Shine(){delete this;}
};
int main( int argc, char *argv[] )
{
auto omaera = new Omaera();
omaera->Shine();
}
これって合法ですか?
0626デフォルトの名無しさん
2015/04/30(木) 20:24:40.14ID:7r+oj3HD0627デフォルトの名無しさん
2015/04/30(木) 20:29:37.52ID:sP3PJt9mお前が死ね
0628デフォルトの名無しさん
2015/04/30(木) 21:43:22.47ID:zo0y0avD組み込みだと違法な場合もある
0629デフォルトの名無しさん
2015/04/30(木) 22:24:09.44ID:AugfkocY明らかに本には乗ってないような難しいことも知っている感じですが・・・
0630デフォルトの名無しさん
2015/04/30(木) 22:27:41.76ID:ioxLfyOW0631デフォルトの名無しさん
2015/04/30(木) 22:30:09.31ID:7r+oj3HDcomponent object modelの参照カウントでよく使われてるよ
0632デフォルトの名無しさん
2015/05/01(金) 17:11:23.26ID:hJyFoXEx0633デフォルトの名無しさん
2015/05/02(土) 02:19:56.79ID:l2Olm8jBこのサイトを参考にアルドゥイーノからpcへ送信されたバイナリデータを受信するプログラムを作成したいのですが、助言頂けないでしょうか
pc側ソフトはvisualstudio2010を使用しており
arduino側プログラムは上記のサイトのサンプルをそのまま使用します。
サンプルプログラムなどありましたらよろしくお願いします
0634デフォルトの名無しさん
2015/05/02(土) 16:12:04.56ID:wQLon+fD全部作ってっていう丸投げ?
0635633
2015/05/03(日) 11:34:08.56ID:68iNX4m7サンプルをつぎはぎして自分で書いたプログラムがこちらで,このプログラムで受信しますと
確かに値は出るのですが文字化けして動かないのです・・・
0636デフォルトの名無しさん
2015/05/03(日) 12:23:42.04ID:p3er52Mk目的の結果と現状の結果がどうなるのかは?
0637デフォルトの名無しさん
2015/05/03(日) 19:13:18.41ID:DGVNwvpl真っ黒の画面にコマンド打って、足し算とかして結果を文字で出すだけの、必要か?って思うような
ものばっかでつまらない。
3DCADみたいなソフトはつくれないの?
0638デフォルトの名無しさん
2015/05/03(日) 19:47:48.28ID:fqhnuaMPそういうのはウィンドウシステムに深く関わらないとどうしようもない
いろいろ寄り道しながら10年くらいかかって到達するようなもの
根気よく頑張ってくれ、俺はもう脱落した‥
エールを贈る
http://japanese.joelonsoftware.com/Articles/FireAndMotion.html
「射撃しつつ前進」
0639デフォルトの名無しさん
2015/05/03(日) 22:40:43.65ID:21DBucM7>3DCADみたいなソフトはつくれないの?
作れる奴らは作れる。お前は自分で作れると思う?
0640デフォルトの名無しさん
2015/05/03(日) 22:50:22.01ID:DGVNwvplあんた、バカァ
作れるかを質問してんのは俺だろうがw
0641片山博文MZ ◆T6xkBnTXz7B0
2015/05/03(日) 22:53:30.09ID:EPJ3sWKWそれを実現するためのソフトウェア部品を考えるとよい。
ボタンやメニューといった操作対象の「GUI」と、3Dオブジェクト表示の
ための「グラフィックライブラリ」と、データをファイルに保存するための
「ファイル入出力」。
0642デフォルトの名無しさん
2015/05/03(日) 23:13:24.96ID:21DBucM7作れる奴らは作れる
って言っているだろ。
0643デフォルトの名無しさん
2015/05/03(日) 23:15:23.15ID:EPJ3sWKW0644デフォルトの名無しさん
2015/05/03(日) 23:15:26.92ID:DGVNwvpl0645デフォルトの名無しさん
2015/05/03(日) 23:25:28.74ID:21DBucM7作れるかどうかって、作る奴の能力しだいだからな
C++の授業を受けてA君は課題のプログラムが出来た、でもB君は出来ない
0646片山博文MZ ◆T6xkBnTXz7B0
2015/05/03(日) 23:29:08.82ID:EPJ3sWKW「GUIライブラリ」
「グラフィックライブラリ」
でインターネット検索するんだ!!!
0647片山博文MZ ◆T6xkBnTXz7B0
2015/05/03(日) 23:37:55.52ID:EPJ3sWKWhttp://yahoo.co.jp
グーグル
http://google.co.jp
0648片山博文MZ ◆T6xkBnTXz7B0
2015/05/03(日) 23:42:42.75ID:EPJ3sWKW五分間待ちます。
「Internet Explorer」をダブルクリックします。
二分間待ちます。
ブラウザが起動するので、ブラウザのアドレスバーに「http://yahoo.co.jp」と入力します。
その右のボタンをクリックします。
0649片山博文MZ ◆T6xkBnTXz7B0
2015/05/03(日) 23:47:08.22ID:EPJ3sWKWヤフージャパンのホームページが開かれます。
文字を入力できる場所に「GUIライブラリ C++」と入力します。
その右の検索ボタンをクリックします。
0651片山博文MZ ◆T6xkBnTXz7B0
2015/05/04(月) 00:04:42.28ID:2JhR5SXhそのときは
「Windows 3.1 インターネット接続」
「Windows 95 インターネット接続」
などで検索するとよいでしょう。
0652デフォルトの名無しさん
2015/05/04(月) 00:22:43.15ID:gp8xoWMo例えばFreeCAD
無限の可能性の貴方ならどんなものでも作られるさね
0653デフォルトの名無しさん
2015/05/04(月) 00:52:46.37ID:89QT3Y970654633
2015/05/04(月) 15:02:02.40ID:zvBV+wQlttp://www.dotup.org/uploda/www.dotup.org297194.png
0~255の値を受け取りそれを画面に0〜255で表示させたいのですが、
現状左の図のように文字化けしてしまいます・・・
右の図のように他のターミナルで表示するとデータが受信できていることはわかるのですが・・・
0655デフォルトの名無しさん
2015/05/04(月) 15:37:35.83ID:UkhECCZE0656デフォルトの名無しさん
2015/05/04(月) 15:47:41.73ID:89QT3Y97外注だと安くても4000円/時間だし
0657デフォルトの名無しさん
2015/05/04(月) 15:52:00.60ID:UkhECCZE0658デフォルトの名無しさん
2015/05/04(月) 16:19:06.03ID:aCbhfK4Oコマンドプロンプト結果なら0xBB以降の二重罫線じゃないの
ttp://www.cdrummond.qc.ca/cegep/informat/Professeurs/Alain/files/ascii.htm
どこのprintf出力かしらんけどこうゆうのはバイナリエディタと同じで%xデータ値と併記したほうがいいんでないの
0659デフォルトの名無しさん
2015/05/04(月) 16:20:12.43ID:LYeSXt0Aその左側の表示は>>635の何行目?
0660デフォルトの名無しさん
2015/05/04(月) 21:53:07.38ID:SA9HCJPHそれバイナリの0x00-0xFFを文字列の0-255に変換していないから化けているんじゃないのか?
0661デフォルトの名無しさん
2015/05/04(月) 21:58:56.36ID:SA9HCJPH確認をまずしたほうがいいのかも知れないが
0662デフォルトの名無しさん
2015/05/05(火) 07:45:34.09ID:8cP4yYWI0663デフォルトの名無しさん
2015/05/05(火) 08:19:30.57ID:JPFk61nl0664デフォルトの名無しさん
2015/05/05(火) 10:16:46.86ID:wynKG7+B俺は使ったことないけどboost logがログのとりのスタンダードらしいよ
RS232Cシリアル通信の
ボーレート
パリティ:なしまたは偶奇
バイト長7/8
ストップビット長:1, 1.5, 2
とか基本的な条件を確認したほうがいい,
プログラムでは8ビット長ノンパリワンストップ11520bpsだがそれでいいのか?
場所は SerialComm_begin()->GetCommState()〜SetCommState() の間
あと dcb.fBinary は GetCommState の結果からさわらないようにしたらどうなる
ともかくいっこいっこ確かめてくれ
0666デフォルトの名無しさん
2015/05/09(土) 22:58:25.98ID:4IoY+00Istd::for_each(v.begin(),b.end(),
[this,a,b,c,d,e,f,g,h,](foo& f){
// 下記に数十行
});
これってありですか?
0667デフォルトの名無しさん
2015/05/09(土) 23:11:51.34ID:Egu5pcNy0668デフォルトの名無しさん
2015/05/09(土) 23:21:04.80ID:4IoY+00I0669デフォルトの名無しさん
2015/05/09(土) 23:24:11.63ID:A4J0+lB1どういう視点でのあり/なしを知りたい?
文法的には、
・begin()とend()で変数が違う
・bとfが重複
・hの後にカンマがついてる
とかの、おかしいところがあるけれど
0670デフォルトの名無しさん
2015/05/09(土) 23:31:45.47ID:4IoY+00I申し訳ない、タイプミスです。
std::for_each(v.begin(),v.end(),
[this,a,b,c,d,e,f,g,h](foo& fo){
// 下記に数十行
});
です。
なにが聞きたいかというと、for_each、lambdaをただ単に無理に使ってるだけ
のようなコードを見かけたもので・・・
0671デフォルトの名無しさん
2015/05/10(日) 00:30:15.26ID:o683gHOl無理くり書いたりすることはある
その見かけたコードってのはどんなのだったのかな?
0672デフォルトの名無しさん
2015/05/10(日) 01:00:19.84ID:rG34pIsWrange-based-forが使えるなら、
for(auto& fo : v)
{
// 数十行の処理
}
としたほうが、長ったらしいキャプチャを書かずにすむから、素直かもね
でも、range-based-forが使えない環境で、「コンテナの汎用的なループにはfor_eachを一貫して使うべし」という信条があるなら、
そのコードも別にありだと思うよ
普通のfor文にしたところで、可読性はたいして変わらんだろうし
いずれにせよ、ループ外の変数減らせるように、リファクタした方がよさげ
0673デフォルトの名無しさん
2015/06/07(日) 01:12:48.06ID:3H81Y72nコンソールで
標準C++を一通り勉強しました
数値を線グラフ化したいのですが
次は
どっち方面へ向かえば良いですか?
0674デフォルトの名無しさん
2015/06/07(日) 01:20:35.66ID:YXU65cq+0675デフォルトの名無しさん
2015/06/07(日) 01:22:43.04ID:hr3tQ2QJほんとなんでもありだなお前のバレバレ自演
0676デフォルトの名無しさん
2015/06/07(日) 15:39:22.50ID:JLEDROYjどうもありがとう
C++の学習必要無かったみたいね
0677デフォルトの名無しさん
2015/06/09(火) 00:17:35.11ID:xfiXeUeQ0678デフォルトの名無しさん
2015/06/11(木) 17:27:47.96ID:iGKX+Re5boost graph
0679デフォルトの名無しさん
2015/06/11(木) 23:44:32.66ID:phbL6DGJ#include "TestClass.h"
// TestClass.cpp
#include "TestClass.h"
// TestClass.h
mainでTestClassを生成した場合
main.cppがTestClass.hを認識出来るのは分かるけど
TestClass.cppはどうやって認識しているの?
0680デフォルトの名無しさん
2015/06/12(金) 05:08:16.69ID:Qvm3BcbJTestClass.libをリンクしないようにしてみ
0682デフォルトの名無しさん
2015/06/12(金) 12:53:38.36ID:Qvm3BcbJ開発環境しらんし!!1
0683679
2015/06/12(金) 14:41:31.65ID:ZzMiSOW40684デフォルトの名無しさん
2015/06/12(金) 14:49:44.71ID:bMq/lwLt初心者ならまずはプロジェクトにソースを登録するか makefileに記述するだろ
0685デフォルトの名無しさん
2015/06/13(土) 01:17:13.02ID:05Jv17SnVSならTestClass.cppを右クリックしてプロジェクトから除外ってみ
0686676
2015/06/15(月) 11:54:10.58ID:mHyo0Y7DTestClass.cppは開発環境が自動で読み込んでくれているだけで
本来は読み込まないものって解釈でよいの?
0687679
2015/06/15(月) 11:54:58.67ID:mHyo0Y7D0688679
2015/06/15(月) 18:41:36.58ID:mHyo0Y7Dプロジェクトから除外してみたら読み込まなかったんだが
TestClass.cppは開発環境が自動で読み込んでくれているだけで
本来は読み込まないものなの?
0689片山博文MZ ◆T6xkBnTXz7B0
2015/06/15(月) 18:49:11.84ID:hozTrjkJ0690デフォルトの名無しさん
2015/06/15(月) 18:53:42.73ID:G/zt5tY/>main.cppがTestClass.hを認識出来るのは分かるけど
>TestClass.cppはどうやって認識しているの?
「mainでTestClassを生成した場合」 とか
「ソースファイル(main.cpp) が ヘッダーファイル (TestClass.h) を認識」 とか
質問が日本語になってないんだもん エスパーして答えるしかねーよ
0691デフォルトの名無しさん
2015/06/15(月) 20:40:55.08ID:H6WfKB6i知識ないのに自慢するなよQZ
お前は入門書を読み漁って章末問題で一人で回答していい気になってろ
ここにくるなゴミ
0692679
2015/06/16(火) 00:53:08.41ID:TEY6OSiS長年の謎が解けたよ
0693デフォルトの名無しさん
2015/06/16(火) 20:07:00.44ID:7c92TlFO0694デフォルトの名無しさん
2015/06/23(火) 16:46:23.25ID:UWY4UI5Shttp://www.pso2-uploader.info/uploda/src/up160546.png
0695デフォルトの名無しさん
2015/06/23(火) 17:27:36.12ID:UWY4UI5S取り下げます
0696デフォルトの名無しさん
2015/06/24(水) 13:02:46.77ID:aZuAsVj7色んな意味でひでぇ問題だな。
0697デフォルトの名無しさん
2015/06/28(日) 03:16:39.30ID:4PA/u/+90698デフォルトの名無しさん
2015/06/28(日) 08:16:49.91ID:q4v0PqzP0699デフォルトの名無しさん
2015/06/29(月) 12:18:24.10ID:/OhQj6sy0700デフォルトの名無しさん
2015/07/01(水) 00:50:56.19ID:43NAfoSR357 名前:オナネタ(そんなに難しくはない)[sage] 投稿日:2015/06/30(火) 15:56:31.85 ID:xNq01ZTL [1/5]
[1]省略
[2]
3^n (n=0,1,2,....1000)
を出力するプログラム
main関数しか作ってはならない。
stdio.h string.h
のライブラリ関数しか使ってはならない。
マクロ関数もNG
行数20行以内
変数は整数配列一つのみ
書式
3^0=1
3^1=3
3^2=9
....
3^82=1330279464729113309844748891857449678409
.....
[3]
[4]
[5]省略
0701デフォルトの名無しさん
2015/07/12(日) 10:20:43.33ID:cli6Wler{
{
int i = 5;
}
i = 0; // エラー.iはもう存在しない
}
のように、他のスコープでは存在したが現在見ているスコープからは見えない変数って、完全に消滅(該当のスタックメモリに再利用可の印をつけ、名前テーブルから削除)しているんでしょうか?
それとも名前テーブルから削除されるだけなんでしょうか?
0702デフォルトの名無しさん
2015/07/12(日) 12:48:17.70ID:k8qQ8sd1実行時の話だよな。
一般的には関数内の自動変数領域は関数に入るときに作られ、関数から抜けるときに解放される。
これをスタックフレームと言う。
確保も解放もスタックポインタを移動するだけだ。
自動変数に名前テーブルも再利用可能の印も要らない。
疑問の前提が間違っている。
>{
> {
> int i = 5;
> }
> i = 0; // エラー.iはもう存在しない
>}
これはコンパイルエラーであって、君の疑問とは全く関係が無い。
「iはもう存在しない」のではなく最初からこのスコープに無い。
0703デフォルトの名無しさん
2015/07/12(日) 12:49:46.02ID:svivBg18言語仕様から確実に言える事は、
「完全に消滅している」
ってところまでかな。
名前云々は完全に処理系依存の話なので何とも。
しかも、コンパイル時の話なので、コンパイラの作成に興味があるのでも無ければ、気にしても意味の無い話しだと思うよ。
0704デフォルトの名無しさん
2015/07/12(日) 12:51:53.50ID:kKzgWvVT0705デフォルトの名無しさん
2015/07/12(日) 14:32:34.21ID:cli6Wlerありがとうございました。
ということは、やっぱりループでのみ使う変数の定義は、ループ内に入れるべきなのかな。
コンパイラ依存でないコード(初めからループの外に定義を追い出す)と、コンパイラの最適化に頼ったコードの比較をしていて気になってました。
0706デフォルトの名無しさん
2015/07/12(日) 15:22:43.20ID:ijGXRf9p最小限だけ書くけどこの場合速度が落ちるから外部でint i;した方がいい場面もある
for()
for(int i;;)
0707デフォルトの名無しさん
2015/07/13(月) 08:15:48.47ID:N83JEIha0708デフォルトの名無しさん
2015/07/13(月) 08:45:00.37ID:SsIQOJjZ0709デフォルトの名無しさん
2015/07/13(月) 09:15:08.88ID:akoFSls40710デフォルトの名無しさん
2015/07/13(月) 12:51:05.93ID:8hvPNaF1処が、普通は関数突入時にスタックフレームを形成するので、件の整数変数をどこで定義しようとその為にコストが変わることはないよ。
それどころか、ブロック内で定義した方が生存期間の判定が楽になるから、レジスタに割り付けられる可能性が却って増すってもんだ。
0711デフォルトの名無しさん
2015/07/13(月) 13:48:29.67ID:SsIQOJjZいつの時代の方ですか?
まあ速度差が出ても>>709に完全に同意だが
0712デフォルトの名無しさん
2015/07/13(月) 21:44:51.87ID:92henfdO0713デフォルトの名無しさん
2015/07/13(月) 22:30:31.47ID:SsIQOJjZint i = /* */;みたいに代入の式が伴って外に出ると速度差が出る場合があるんだよね。
意味的に違ってくる場合があるから当然だけど。
0714デフォルトの名無しさん
2015/07/13(月) 23:10:35.47ID:cxTds9wUってのを無視してる人が多いのが謎
0715デフォルトの名無しさん
2015/07/13(月) 23:22:02.96ID:3owfcYR40716デフォルトの名無しさん
2015/07/14(火) 01:13:37.01ID:E3nEuehz説明したい内容が、必要十分に含まれているという事が、最小限ってことだぞ…
後付けで条件の追加が必要であるならば、それは単純に足りないコードだよ…
0717デフォルトの名無しさん
2015/07/14(火) 01:40:32.73ID:3KviU9VD> ループでのみ使う変数の定義は、ループ内に入れるべきなのかな。
に対してなんだから>>706のコードだけで十分だろ
アスペ多くね?
0718デフォルトの名無しさん
2015/07/14(火) 03:44:08.40ID:kZduJHiIお前自身の主張がなんなのかまったく解らんのだが、ただ他人をバカにしたいだけ?
0719デフォルトの名無しさん
2015/07/14(火) 08:20:25.22ID:i/2DLItiその>>706が、本文に合ってるコードになってないって事だろ
0721デフォルトの名無しさん
2015/07/14(火) 22:37:36.28ID:rB0J2LcB0722デフォルトの名無しさん
2015/10/13(火) 15:25:40.08ID:GMeIq+4u0723停止しました。。。
NGNG■ このスレッドは過去ログ倉庫に格納されています