トップページ⇒tech
723コメント263KB

【初心者歓迎】C/C++室 Ver.94【環境依存OK】©5ch.io

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん 転載ダメ©2ch.net2014/11/29(土) 19:42:42.55ID:H7nG43zB
エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。
※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:H7nG43zB
テンプレここまで
0003デフォルトの名無しさん2014/11/29(土) 23:13:28.80ID:SoXvwZNw
               ノ      ゚.ノヽ  , /}      ...
            ,,イ`"     、-'   `;_' '    ..::::::::::::::...
   ,-、  _.._   (        (,(~ヽ'~     ..:::::::::::::::::::::::
 )'~  レー'  〉   ヽ       i`'}       .:::::::::::::::::::::::
 ~つ     '-ー、  i       | i'     ...:::::::::::::::::::::::
 /       <  /     。/   !  ......:::::::::::::::::::::::::    これは>>1乙じゃなくて
/         ~^´     /},-'' ,●::::::::::::::::::::::::::::::::::::
i、        ,i' _,,...,-‐-、/    i  ::::::::  .:::::::::::::
..ゝ        <,,-==、   ,,-,/      .:::::::::::            放射能がうんたら
 )       {~''~>`v-''`ー゙`'~       ..:::::::::                          ........::.
 {        レ_ノ            ..::::::::.                         ......:::::::::
ノ         ''           ..:::::::                        ...::.:...:::::::::
                     .:::::::::                     ...:......:::::::::::: .
                    .:::::::::::.        .....      ..  ..::::::::::::::::::::::::   :::.
                    ::::::::::::::::.::::::....:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.. ::  ::..
                    .:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::    ::.
                    ::::::::::::::::: :::::::::::::::::::::::::::::: :::::
                          .::    ::.  :::
0004デフォルトの名無しさん2014/11/30(日) 06:09:05.70ID:b4nmdqGs
スレだぶってるよ
0005デフォルトの名無しさん2014/11/30(日) 06:56:47.16ID:pAK1rqmE
削除依頼出してこいよ>>1
0006ほげ2014/11/30(日) 07:37:44.89ID:Ub6DvR6o
hogeアートをみんなで貼ろう!
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge 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
たしか hoge アートでステレオグラム作ってる人いたな
漏れは片目失明したからもう楽しめないけど
0008デフォルトの名無しさん2014/11/30(日) 13:35:39.71ID:d9djmG8V
ここはまたホゲを貼るスレですね?
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge 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:Q44JDfrW
スレち
0010デフォルトの名無しさん2014/11/30(日) 14:06:14.12ID:Rv000YfS
スレ削除はよ
0011デフォルトの名無しさん2014/11/30(日) 14:08:59.56ID:Rv000YfS
てか一日前に次スレ立ってんのに>>1はなんでクソスレ立てるわけ?
荒らしなの?
0012デフォルトの名無しさん2014/11/30(日) 14:26:02.25ID:eT2GHNAm
こっちは無視でいいのかな
0013ほげ2014/11/30(日) 14:40:07.27ID:eFKzysBl
そんなこと言わずに盛り上げようぜ!
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge 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:WgNYlXPX
こっちはhogeスレでおk
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge 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:5l1eAk1d
hoge-
0017デフォルトの名無しさん2014/12/01(月) 09:45:51.05ID:ikZ1X/ON
s/.94/.95/g
0018デフォルトの名無しさん2014/12/01(月) 23:32:04.67ID:ckayckOT
削除依頼なんてもったいない
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
hoge hoge hoge hoge hoge hoge hoge hoge 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:R9AAXdvt
hage
0020デフォルトの名無しさん2014/12/06(土) 09:49:48.00ID:TVnq4wFE
ハゲ
0021デフォルトの名無しさん2014/12/06(土) 10:59:57.00ID:8e1EU+sD
聖書「列王紀下」2章:23
彼はそこからベテルへ上ったが、上って行く途中、小さい子供らが町から出てきて彼をあざけり、
彼にむかって「はげ頭よ、のぼれ。はげ頭よ、のぼれ」と言ったので、 彼はふり返って彼らを見、主の名をもって彼らをのろった。すると林の中から二頭の雌ぐまが出てきて、その子供らのうち四十二人を裂いた。
0022デフォルトの名無しさん2014/12/07(日) 06:40:22.10ID:kfpI/dd2
HOGEHOGEHOGEHOGE
0023デフォルトの名無しさん2014/12/07(日) 15:51:03.26ID:8AVYz9y5
http://image3.inews24.com/image_joy/201402/1391569588669_1_121027.jpg
http://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
>>23
誰がhageなの?
0025デフォルトの名無しさん2014/12/07(日) 21:32:52.73ID:qKVX4M2C
ビヤーネが禿なの。
フサフサなスコットメイヤーがハゲに刺されるのも時間の問題
0026デフォルトの名無しさん2014/12/08(月) 21:44:55.72ID:83jQwhKt
class Aと class Bが相互に参照するため、class B のヘッダー内で前方参照してるんだけど、
class 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:iz8A3eDi
http://blog-imgs-56.fc2.com/d/p/r/dprknow/2012-10-11-12-yflv_000282200.jpg
http://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:5zqyBEml
>>26 共通で使いまわしたい意図の型定義を追い出したらだめ?

class 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/1VpOF
禿はC++使いにとって栄誉ある称号
http://img.yaplog.jp/img/15/pc/y/a/m/yamu98/19/19888.jpg
0031デフォルトの名無しさん2014/12/10(水) 21:28:37.76ID:PoGTwE5c
雌熊が
0032デフォルトの名無しさん2014/12/11(木) 21:21:26.48ID:4ETHF6Fp
雌は良いものです
http://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:bOLXsmE9
http://24.media.tumblr.com/93baf76a4bc590df0a12aa450c2fb248/tumblr_n17p9qyTkr1smljmjo9_1280.png
http://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+
http://blog.trendmicro.co.jp/archives/10346
0035デフォルトの名無しさん2014/12/13(土) 09:06:02.77ID:SQgyoVwB
みんあ仲良く同じ顔ー
0036デフォルトの名無しさん2014/12/14(日) 00:39:54.44ID:z532gSNK
同じに見えるやつはメクラ
ttp://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:Tt2IEpnW
http://seoulbeats.com/wp-content/uploads/2011/08/20110829_seoulbeats_sunny_snsd.jpg
0038デフォルトの名無しさん2014/12/15(月) 01:12:02.73ID:3UbQ6XqY
std::for_eachってどんなときに使うの?
for(〜;〜;++){}でまわせばいいだけでは?
0039デフォルトの名無しさん2014/12/15(月) 01:15:02.44ID:DDIABndf
>>38
効率的なforを書くのが面倒だったり、書けるとしても長くなってしまったりするとき
0040デフォルトの名無しさん2014/12/15(月) 01:15:27.97ID:aYRUZIwr
使い道ないな
一回も使った時ねー
0041デフォルトの名無しさん2014/12/15(月) 01:24:55.26ID:EZkZoVoc
効率てきなforってどんなんだよ
0042デフォルトの名無しさん2014/12/15(月) 05:17:49.41ID:BV1c1+4q
>>38
for_eachの方が、forより情報量が少ないから、
考えることが減り、バグが減る

つまり、人にやさしく、効率的、エコ
0043デフォルトの名無しさん2014/12/15(月) 07:02:26.00ID:jixZIJsC
>>38
コレクションの全ての要素に対してループを回したい時。

通常のforだと開始条件はともかく終了条件を間違えてバグる時があるけど、
特にコレクションの場合は、その要素全てに対してループを回すことが目的だから、
条件式とかを排除してシンプルにループを回す構文
0044デフォルトの名無しさん2014/12/15(月) 07:07:01.90ID:jixZIJsC
C++でこういうことが出来るのを知らなかったんでw
C#の例で書くと、
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
for_each自体は<algorithm>におけるHello,worldみたいなもんで
それ以外の強力なイテレータ系関数を学ぶための布石だと俺は思ってる
0046デフォルトの名無しさん2014/12/15(月) 12:02:17.13ID:6+rjsbMU
手間、記述を減らす。
スクリプト系では添字使わないほうが標準的では?
コンピュータにとってもとくにスクリプト系では手間が減って早くなる。
0047デフォルトの名無しさん2014/12/15(月) 12:16:36.47ID:yMEZ5G45
添え字使わない単なるforだけなら旨味そこまででもないと思う
ただ、for_eachの挙動が解ってると、同ヘッダ内の
他の関数の挙動が凄く分かり易くなるっていう大事な関数だとも思う
0048デフォルトの名無しさん2014/12/15(月) 12:17:46.11ID:z/cTXs7N
普通に操作したら重い一部のイテレータに対して特殊化したfor_eachを用意することで
イテレータの内部実装を直接利用した効率的な処理を行える可能性がある
実際にそうしてる環境があるのかはしらん
0049デフォルトの名無しさん2014/12/15(月) 18:05:44.27ID:scyQtu+8
>>44
C++でも for (int val : collection) とできるが
0050デフォルトの名無しさん2014/12/15(月) 19:20:07.01ID:/SsCOr8K
でも >>44 は速いんだよね‥
0051デフォルトの名無しさん2014/12/15(月) 20:22:04.45ID:Ieh2V7Xe
俺にとっては、インデックスの上限間違えたり、i++ 入れ忘れて無限ループにならないだけでも使う価値があるわ
0052デフォルトの名無しさん2014/12/15(月) 21:50:54.32ID:mI1D61eZ
ボトルネックになる箇所なんて限られてるんだから
速さが求められるところだけピンポイントで直せばいい
0053デフォルトの名無しさん2014/12/16(火) 00:10:30.26ID:Cfrd/RN/
>>51
for_each(hoge.begin(),hoge.end,
でも上限間違えたりするじゃん

使う理由がわからん
0054デフォルトの名無しさん2014/12/16(火) 06:35:16.40ID:eY5iqPnR
>>53
ああすまん、>>49 の方な
0055デフォルトの名無しさん2014/12/17(水) 17:11:59.47ID:COoHLGo1
staticで確保したメモリってプログラム中に開放できますか?
0056552014/12/17(水) 17:18:57.14ID:COoHLGo1
>>55
これ出来ないですね...すいません...

では、クラス内部にシングルトンがあって
そのクラスをnew、インスタンス取得、deleteした時は
どうなりますか?
0057デフォルトの名無しさん2014/12/17(水) 17:31:35.74ID:cvokdp9c
そんなの普通にnewしたのをdeleteした時と同じ
0058デフォルトの名無しさん2014/12/17(水) 17:33:38.64ID:cm6ENvAy
意味不明
コードで示せ
0059デフォルトの名無しさん2014/12/17(水) 17:37:23.02ID:T8Ls5WMe
staticはクラスのインスタンスと無関係だから
そのクラスをnewしようがdeleteしようがどうにもならん
0060552014/12/17(水) 18:37:18.58ID:COoHLGo1
class cSingleton
{
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のコンストラクタが private なのでメンバーに持つことが出来ない
(そういう機構で複数の 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:vdnkzoec
ttp://img-cdn.jg.jugem.jp/e04/1720321/20131023_784369.jpg
ttp://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
>>60
>>59が言ってることが全て
あるクラスのstaticメンバ関数内のstaticローカル変数もそのクラスのインスタンスとは無関係
これはそのクラスのインスタンスが他のクラスのメンバとして間接的に生成されようが変わりはない
0066デフォルトの名無しさん2014/12/19(金) 22:30:00.12ID:2K3D2OJ2
http://imagec.navi.com/images/templates/SEOUL/5037306/db6c2da6cc7dfe25_S.jpg
http://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:qyurmby2
ttp://stat.ameba.jp/user_images/20130603/11/with-kakegawa/f2/91/j/o0786052412562470444.jpg
ttp://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:j0bYujz9
http://livedoor.blogimg.jp/cathaycher/imgs/9/9/99a1af56.jpg
http://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:BpxozoLa
http://th07.deviantart.net/fs70/PRE/i/2013/005/f/d/seohyun__sunny__taeyeon_for_raw_japan_by_djyoora-d5qhl2s.jpg
http://blog-imgs-49.fc2.com/s/o/s/soshi21/120116lg3dtv.jpg
0070デフォルトの名無しさん2014/12/23(火) 21:45:28.98ID:mkqiMGUu
http://pix.avaxnews.com/avaxnews/70/07/00000770_medium.jpeg
0071デフォルトの名無しさん2014/12/25(木) 22:12:56.64ID:WJoNsl3W
ttp://blog-imgs-59.fc2.com/d/e/l/deliciousicecoffee/201309140854552e2.jpg
ttp://blog-imgs-59.fc2.com/d/e/l/deliciousicecoffee/20130914085514f19.jpg
0072デフォルトの名無しさん2014/12/28(日) 09:19:00.74ID:PJZx/kFz
http://tanakaryusaku.jp/wp-content/uploads/2013/03/d1188417c1dd6c8e15345ebe2d7b0de8.jpg
0073デフォルトの名無しさん2014/12/29(月) 19:24:56.53ID:r0z0pjqC
http://blogimg.goo.ne.jp/user_image/7e/b3/c75de7cf42359fb90afdfd902ed4339e.jpg
0074デフォルトの名無しさん2015/01/01(木) 22:42:33.53ID:WpoOzY+l
>>66-73
工作員乙。
0075デフォルトの名無しさん2015/01/01(木) 22:55:13.90ID:yLqkBpeG
http://media.tumblr.com/2fe8123df69e292ec12779b8c4a075a3/tumblr_inline_mjc936CMGR1qz4rgp.jpg
0076デフォルトの名無しさん2015/01/02(金) 10:40:41.12ID:x5V6gXqF
test
0077デフォルトの名無しさん2015/01/02(金) 21:39:19.49ID:sgAmTW3I
http://25.media.tumblr.com/tumblr_mbogakNz4H1qd704zo4_1280.jpg
0078デフォルトの名無しさん2015/01/05(月) 00:01:10.84ID:jTekFFMy
http://fast-uploader.com/transfer/6975938929348.jpg
0079デフォルトの名無しさん2015/01/08(木) 21:50:10.85ID:C+vEDWRT
http://livedoor.blogimg.jp/mercyjk/imgs/a/c/acc21dd0.jpg
0080デフォルトの名無しさん2015/01/14(水) 21:48:22.89ID:Cvxvn+jN
http://blogs.c.yimg.jp/res/blog-25-5a/soshi_9angels/folder/430199/11/8917111/img_9?1356454341.jpg
http://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+NF
http://syouzyozidainikki.c.blog.so-net.ne.jp/_images/blog/_a9e/syouzyozidainikki/hyoyong202014.4.15.jpg
http://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+Cyu0M
http://trizine.co.kr/article/images/20130707131230.jpg
http://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:kDowXL8L
http://contents.eroga-station.com/image/m47548gd/000059/01.jpg
0084デフォルトの名無しさん2015/02/01(日) 20:36:15.83ID:dvKbzDCN
http://blog-imgs-60-origin.fc2.com/f/u/n/funnyoubenki/20130524222038b72.jpg
http://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/hXDQXD
http://upload.wikimedia.org/wikipedia/commons/b/bd/%E4%BA%8C%E6%AC%A1%E9%9C%A7%E7%A4%BE%E4%BA%8B%E4%BB%B6.jpg
0086デフォルトの名無しさん2015/02/01(日) 20:55:31.31ID:Oy9MlKBG
>>84-85
グロ
0087デフォルトの名無しさん2015/02/01(日) 20:56:29.20ID:b1Drc9W3
グロ注意
韓国系荒し
0088デフォルトの名無しさん2015/02/03(火) 21:34:35.61ID:UghEvQ+4
http://blog-imgs-48.fc2.com/a/v/3/av30/opud00154jp-1.jpg
0089デフォルトの名無しさん2015/02/04(水) 07:58:02.83ID:PCkywKWC
>88
グロ
0090デフォルトの名無しさん2015/02/04(水) 10:27:15.51ID:+U2BPPPk
Fuck you, Korean!
Die, Die, Die!
0091デフォルトの名無しさん2015/02/07(土) 09:05:07.28ID:fxm+xPTB
http://i.imgur.com/LF7ZKYH.jpg
0092デフォルトの名無しさん2015/02/11(水) 22:26:02.10ID:gsU54+VG
http://www.kbsworld.ne.jp/_data/bbskorea/p_1366635039.jpg
http://www.kbsworld.ne.jp/_data/bbskorea/p_1366635152.jpg
0093デフォルトの名無しさん2015/02/14(土) 09:54:59.60ID:grXdfziL
http://imagec.navi.com/images/templates/SEOUL/5016014/51121_2_S2.jpg
http://imagec.navi.com/images/templates/SEOUL/5016661/80704_6.jpg
0094デフォルトの名無しさん2015/02/14(土) 14:22:02.19ID:iia+5DIu
ここ
http://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
>>95
誘導ありがとう
0097デフォルトの名無しさん2015/02/15(日) 01:38:23.17ID:VN/XGnmY
http://syouzyozidainikki.c.blog.so-net.ne.jp/_images/blog/_a9e/syouzyozidainikki/hyoyong202014.4.15.jpg
http://kankoku-seoul.jp/wp/wp-content/uploads/2014/03/201403142045592010_1.jpg
0098デフォルトの名無しさん2015/02/15(日) 22:11:11.62ID:rMyrVCeT
http://www.zenshin.org/com/ilm_back_no/p_441/i414_42_1.jpg
http://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:NPRawGvX
http://imgur.com/fkDt2Xm.jpg
0100デフォルトの名無しさん2015/02/21(土) 21:45:34.53ID:gN2F2Lil
ttp://livedoor.blogimg.jp/ghistory/imgs/0/e/0e9d1517.jpg
ttp://livedoor.blogimg.jp/ghistory/imgs/b/9/b981b070.jpg
0101デフォルトの名無しさん2015/02/22(日) 06:50:03.45ID:JC6bv7QJ
http://i.imgur.com/aZBmss1.gif
0102デフォルトの名無しさん2015/02/22(日) 23:15:05.44ID:q2RiS+Za
http://i.imgur.com/qBdOzok.jpg
0103デフォルトの名無しさん2015/02/25(水) 19:10:49.73ID:jcpQjetK
SHOGUNというライブラリをソースコードからコンパイルしようとしています。
OSはwindows7です。
とりあえずCygwinをインストールするところから初めました。
そしてCygwinのターミナルから
cmake .
make install
とすると、fdopenの関数が見つからないというエラーが出ました。
fdopenは今は<stdio.h>には無いとのことで、<cstdlib> <cstdio>をインクルードしましたが
やはりエラーはなくなりませんでした。
fdopenを書き換えること等は出来るのでしょうか。
0104片山博文MZ ◆T6xkBnTXz7B0 2015/02/25(水) 19:15:48.65ID:mKx2rGPv
>>103
undefine __STRICT_ANSI__ before compiling:

$ g++ -std=c++11 -U__STRICT_ANSI__ foo.cpp
0105デフォルトの名無しさん2015/02/25(水) 20:02:10.03ID:yKEcxS/o
http://cphoto.asiae.co.kr/listimglink/6/2009110822263050403_1.jpg
http://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:9Jue4yk2
http://imgur.com/RyroMDm.jpg
http://imgur.com/Uz0vevJ.jpg
http://imgur.com/Dk6yFb6.jpg
0107デフォルトの名無しさん2015/03/08(日) 12:31:08.61ID:E5onmAzn
http://livedoor.blogimg.jp/pururungazou/imgs/c/7/c7b88ab1.jpg
http://i.imgur.com/DI6LBt9.gif
0108デフォルトの名無しさん2015/03/15(日) 23:13:11.78ID:N62PgpuL
char* texts[] = {"a","b","c","d","e","f","g","h","i","j"};
printf("%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
>>108
マクロ必須?
文字列を返す関数ならすぐ思い付くけど。
0110デフォルトの名無しさん2015/03/16(月) 14:23:05.68ID:+9zbWvUS
>>108
関数じゃダメなのかな

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:oGjevCAQ
>>110

nは可変ですが、コンパイル時に決定する値ですので
実行時に作成するのは無駄ですよね?
0112デフォルトの名無しさん2015/03/16(月) 19:52:59.50ID:+9zbWvUS
俺の知識ではマクロで実現する方法が思いつかない
0113デフォルトの名無しさん2015/03/16(月) 20:59:32.64ID:oGjevCAQ
template黒魔術ならいけますか?
それでもいいです
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
boost使用可なら
#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
http://codepad.org/cqdz8LgA
上記コードは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:PrY9Rxng
>>116
ttp://codepad.org/uZOyzJoU
0118デフォルトの名無しさん2015/03/17(火) 16:49:02.70ID:07oTgRoY
|豆〇ト仝ю♀引Ы★?
0119デフォルトの名無しさん2015/03/17(火) 19:35:39.03ID:uo2kZQF6
>>117
理屈はよくわからないのですがそれで行けました。
ありがとうございます。
0120デフォルトの名無しさん2015/03/22(日) 15:30:18.47ID:ljCp5GrR
これって合法ですか?
int *p = NULL;
delete p;

やはり
if(p) delete p;
とすべきでしょうか?
0121デフォルトの名無しさん2015/03/22(日) 15:39:08.20ID:Cl7axnxP
if(p)がtrueでもdelete可能ではないのでは?
これは。



if(p){
delete p;
p = NULL;
}
0122片山博文MZ ◆T6xkBnTXz7B0 2015/03/22(日) 15:43:43.56ID:KcTTsKQ+
>>120
delete (int*)NULL;
には、なんの効果もない。C++FAQを読め。
0123デフォルトの名無しさん2015/03/22(日) 16:00:48.95ID:ljCp5GrR
>>122
であれば
>>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:Cl7axnxP
必ずしも直前にNULLを代入する前提ではなく、NULLかもしれないしそうではないかもしれない実環境の想定なんだろ?




MEM31-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:ljCp5GrR
unique_ptrなんて趣味でやってるようなヲタ専用でしょ
0127デフォルトの名無しさん2015/03/22(日) 16:49:16.06ID:p1Ry3I+w
>>125
その想定でも話は変わらないでしょ。

>>126
そうでもないよ。仕事でも使うし。
むしろ仕事で胡散臭い delete バラまかれるほうがマズいな。
0128デフォルトの名無しさん2015/03/25(水) 00:46:47.20ID:KfwtEOZY
あるクラスFooがあり、
また、FooImplクラスがあります。

class Foo
{
FooImpl* pFooImpl_;
}

みたいなコードを見かけました。
これだけならなんとも思わないんですが、コメントに
Fooはインターフェイスを定義して実装はFooImplとかいてあります。

class Foo : public FooImpl{};

とはどう違うのでしょうか?
コメントの内容からすると継承でいいような気がするんですが・・・
0129デフォルトの名無しさん2015/03/25(水) 01:24:22.45ID:zHgovz26
>>128
pImplイディオムを実装してたんじゃないの
0130デフォルトの名無しさん2015/03/27(金) 00:45:48.18ID:nRohh0XS
void foo(int a){
bar<int>();
}
で<int>はfooの仮引数の型と同じ場合
aはコンパイル時にintと分かっているため、下記のような書き方ってできませんか?

void foo(int a){
bar<〜(a)>();
}
0131デフォルトの名無しさん2015/03/27(金) 05:05:10.71ID:oqD21NWS
テンプレート関数、とかそういう話?
0132デフォルトの名無しさん2015/03/27(金) 12:11:47.05ID:5M8nXgvo
(スレタイに)初心者歓迎とありましたので質問させていただきます
c言語でポインタに関してなんですが、
基本的に
・別関数に構造体を渡す際に高速化をはかる
・関数ポインタ
・動的なメモリ確保
以外どのような場合に使われるのでしょうか?
あと配列とポインタの関係に関して以下の認識で宜しいでしょうか?
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
>>132
「スコープを越えたところのデータを変更する」ことができる
例えばローカル変数のアドレスを関数に渡して、関数側からローカル変数の内容を変更することが可能
数値だとそこまで有用ではないが、構造体だと結構使うと思う
0134デフォルトの名無しさん2015/03/27(金) 13:16:15.70ID:5M8nXgvo
>>133
なるほど目から鱗です
ありがとうございます!
0135デフォルトの名無しさん2015/03/27(金) 15:40:29.11ID:MiCUmk6I
>>134
動的確保や解放の回数を減らせる

文字列用にサイズ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
>>131
解決しました。
0137デフォルトの名無しさん2015/03/27(金) 19:07:46.69ID:HyXqDr8q
>>132
ほとんど133の言い換えだけど、scanfみたいに複数の値を返す関数で使う

あと、strstrみたいな文字列の途中を指すとき

それと、今はあんまりないかもしれないけど、組み込み系で外部デバイスの直接アクセスに使ったり
0138デフォルトの名無しさん2015/03/28(土) 00:01:54.60ID:Ruzh6H/h
どうすればメンバ関数の ア ド レ ス を取得できますか?
0139デフォルトの名無しさん2015/03/28(土) 00:51:58.60ID:dShmB10Q
>>135,137
ありがとうございます
0140デフォルトの名無しさん2015/03/28(土) 04:03:56.96ID:vFtQyJKT
>>132
(ポインタ + 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
>>132
メモリマップドI/Oのアドレスを保持する とか
0142デフォルトの名無しさん2015/03/28(土) 06:52:04.36ID:LZ/SArZZ
>>138
なんでアドレスが欲しいのか知らんが、たいていの処理系ではポインタを
それより大きい整数型にキャストすればアドレスが得られる。
0143デフォルトの名無しさん2015/03/28(土) 06:59:44.17ID:p+oUvV+T
>>138
こういうことがしたいのか?
http://peace.2ch.net/test/read.cgi/tech/1313183984/754
0144デフォルトの名無しさん2015/03/28(土) 07:46:54.56ID:JCsZnGie
C言語のfgetcについて質問です
第二引数は改行を入れた最大文字数ということですが
基本的に処理系の誤差を考慮しなければ第一引数のサイズ-1でよいですか?
0145デフォルトの名無しさん2015/03/28(土) 07:54:47.43ID:MC5n48Fa
int fgetc(FILE *fp);
0146デフォルトの名無しさん2015/03/28(土) 08:09:50.74ID:JCsZnGie
ごめんなさい間違えました
fgetsです
0147デフォルトの名無しさん2015/03/28(土) 08:31:44.30ID:MC5n48Fa
-1とは?
自動的に付けてくれる最後のヌル文字含めて、第2引数のサイズに収めてくれるから
第1引数のサイズそのままでok
0148デフォルトの名無しさん2015/03/28(土) 09:30:09.74ID:JCsZnGie
あっマジですか
ありがとうございます
0149デフォルトの名無しさん2015/03/28(土) 10:20:56.03ID:wGIVv2vy
処理系の誤差ってなんだ
0150デフォルトの名無しさん2015/03/28(土) 11:04:58.24ID:bxfGXCYr
こういうこと
http://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
>>150
グロ
0152デフォルトの名無しさん2015/03/28(土) 12:42:18.01ID:Ruzh6H/h
>>142
やってみてからレスしようね
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
>>153
> 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:XfQU9N1R
その程度も知らないレベルが答えてるって話だろ
0159デフォルトの名無しさん2015/03/29(日) 03:56:14.46ID:xlKwV1Bo
> public:
>      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
どうせPlayer p;とかしてるとかそんなオチ
質問するならエラー内容も番号含めた正確な文字列を張りましょうね
0162デフォルトの名無しさん2015/03/29(日) 06:26:33.36ID:XfQU9N1R
今回は質問する方もダメだから丁度いいんじゃね?
せっかくコンパイラがエラー出してもそれが出てる行数すら理解出来ないようだし。
0163デフォルトの名無しさん2015/03/29(日) 08:16:18.66ID:xqo1VVEC
http://i.imgur.com/kDtW4AD.jpg
http://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:QlYaDaYV
http://contents.eroga-station.com/image/m47548gd/000059/01.jpg
0167デフォルトの名無しさん2015/03/29(日) 11:45:26.15ID:G6/MuzBY
>>165
それだと関数に配列(のポインタ)を渡したとき
渡した先の関数で配列の要素数をチェックできないから
0168デフォルトの名無しさん2015/03/29(日) 11:48:31.91ID:iKqWd88K
> #define max 9

いまだに定数にdefine使う低能は
プログラミングに携わるべきではない
0169デフォルトの名無しさん2015/03/29(日) 11:49:47.96ID:G6/MuzBY
まだ実装してないけど
分割コンパイルしたくて関数を別のソースファイルに記述するつもりなんだが
配列をグローバル変数化したくなくて出来ることならあまりexternも頻繁に利用したくないから
関数に配列のポインタを渡して渡した先の関数で要素数を得られるようにしたいってことで
>>164で問題ないかな?
0170デフォルトの名無しさん2015/03/29(日) 11:50:38.77ID:G6/MuzBY
>>168
それは場合によりけりなんじゃ...
0171デフォルトの名無しさん2015/03/29(日) 11:54:05.68ID:PCcOtM3J
>>167
ポインタだけ渡したら>>164の方法で要素数を求めることはできないぞ
0172デフォルトの名無しさん2015/03/29(日) 11:57:08.00ID:ozqnLQRj
>>168
          {/: :/: :/:::::::::::::::::/: : : : : / : : : : : : : : : : : : : . \:::::::::::::::/
         /: : : : : : /:::::::::::::::::::{ : : : : /: : : : : : : : : : : : : : : :\ \:::::::::!
       /: : /: : : ∧:::::::::::::::::/: : : : /:/: : : : :/ : : : /: : :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
>>171
やっべそうでした思い出しました(汗
引数に要素数渡さないといけませんでしたね
ありがとうございました
0174デフォルトの名無しさん2015/03/29(日) 12:06:57.40ID:G6/MuzBY
#define派とsizeof派ってやはりいるのかな
sizeofするのが正しいとは思うけど、あまりsizeofばっかやっても逆にみづらい場合もあるよね
やっぱりこれって適切な場合によって使いわかるべきだよね ケースバイケースなのかね...
0175デフォルトの名無しさん2015/03/29(日) 12:25:28.14ID:ozqnLQRj
sizeof()で「できない」場合も多い、特に配列とポインタを同様に使える
C/C++ではね。だから、わかっているなら
#define CNT 10
#define MAX (CNT-1)
の方が優れているよ?(´・ω・`)
0176デフォルトの名無しさん2015/03/29(日) 12:28:41.62ID:XfQU9N1R
>>175
CはまだしもC++までそんな糞と一緒にしないでください
0177デフォルトの名無しさん2015/03/29(日) 12:42:05.55ID:ozqnLQRj
>>176
     /: : : : : __: :/: : ::/: : ://: : :/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
>>177
おう、俺の中ではお前はこれ以上話を聞く価値のない底辺プログラマーだ。喜べ
0179デフォルトの名無しさん2015/03/29(日) 13:12:45.23ID:ozqnLQRj
いつから、おいらがプログラマーだと勘違いしていた?(´・ω・`)
0180デフォルトの名無しさん2015/03/29(日) 14:32:10.95ID:zb3TpvJQ
>>174
int a[7][10];

_countof(a) = 7
_countof(a[0]) = 10
0181デフォルトの名無しさん2015/03/29(日) 16:37:48.75ID:zb3TpvJQ
>>160
そういえば
>>154で知らないと言っておきながら他の回答者に理由も提示せず突っ込むだけとか
過去に質問して何かあったのか?
0182デフォルトの名無しさん2015/03/29(日) 17:02:34.41ID:M18I0Bq+
しらんがな
0183デフォルトの名無しさん2015/03/30(月) 00:06:14.59ID:aL6fCSSB
http://newhalf.net/i/iphoto/data/1426978864.jpg
0184デフォルトの名無しさん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
(C言語を想定)
ややこしくなったら typedef 通すとよいよ

tyoedef void (*FUNC_PTR)(void);

FUNC_PTR p_display[] = {
... 以下同じ
0186デフォルトの名無しさん2015/03/30(月) 14:22:23.44ID:p5EATsYz
>>185
まじかありがとう!
あと、一応>>184でもやり方はあってるよね?
0187デフォルトの名無しさん2015/03/30(月) 18:05:04.68ID:+8902R/b
細かい事だが、
sizeof(p_display)/sizeof(p_display[0])
は定数なのでforの終了判定に直接書いた方が良い。
0188デフォルトの名無しさん2015/03/30(月) 18:18:22.39ID:AKJsrmAN
便乗するとsizeじゃなくてcountにするかな
0189デフォルトの名無しさん2015/03/30(月) 19:54:09.85ID:AKJsrmAN
sizeof(p_display)/sizeof(p_display[0]);
→_countof(p_display);
これでもいける
0190デフォルトの名無しさん2015/03/30(月) 20:03:28.64ID:Z/xNzUYF
#include <iostream>
int main()
{
  int a[1000][1000][200][2];
  char c;
  std::cin >> c;
}

上記を実行してもタスクマネージャの「メモリ」が増えないのはなぜですか?
1.6GB上昇すると思っているのですが・・・
0191デフォルトの名無しさん2015/03/30(月) 20:10:41.32ID:AKJsrmAN
aが使用されて無いから最適化で削除された可能性は?
0192デフォルトの名無しさん2015/03/30(月) 20:12:10.61ID:0nFGZg2O
OSによる
けど、Windowsっぽい前提で

そのコードだと 最適化で消えうせる
実際にアクセスするまではコミットされてない
0193デフォルトの名無しさん2015/03/30(月) 20:15:19.17ID:Z/xNzUYF
memset(a,0,sizeof(a));
でも増えない理由は?
0194デフォルトの名無しさん2015/03/30(月) 20:24:05.69ID:AKJsrmAN
>>193
forループ回して全配列の値をprintfするようにしてみ
stack overflowになるんじゃね
0195デフォルトの名無しさん2015/03/30(月) 20:31:33.45ID:Z/xNzUYF
その理由は?
0196デフォルトの名無しさん2015/03/30(月) 20:47:48.01ID:AKJsrmAN
なんだネタか
0197デフォルトの名無しさん2015/03/30(月) 20:50:49.17ID:Z/xNzUYF
その理由は?
0198デフォルトの名無しさん2015/03/30(月) 22:19:43.30ID:srztvLsH
>>197
話したくない
0199デフォルトの名無しさん2015/03/30(月) 22:31:00.27ID:Z/xNzUYF
その理由は?
0200デフォルトの名無しさん2015/03/31(火) 02:56:36.21ID:Mf+Rrt9Z
>>190
https://www.google.co.jp/search?q=%22as+if%22+rule
0201デフォルトの名無しさん2015/03/31(火) 20:04:50.51ID:o9lmMpx3
externについて質問です
変数に関しては
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:o9lmMpx3
として問題ありませんが、構造体の場合は
struct.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:jIkoyFTK
>>202
main.h の立ち位置がよくわからない
二つの .c の仲立ちを基本一つの .h で行うとおもうんだが、そのコード main.h, struct.h のどちらかを省くことはできないのか?
0204デフォルトの名無しさん2015/03/31(火) 20:20:24.29ID:o9lmMpx3
>>203
>main.hの立ち位置がよくわからない
すみませんポイントはそこではなく(上記のプログラムは意味の無いものなので)
ようは構造体をexternしたい場合ってソースファイルではなくヘッダファイルに構造体
を定義しないとコンパイル通りませんよね?(c++ではヘッダにclassを定義するのが定石ですし)
上記の場合では
main.h
extern s_counterのs_counterはstruct.hに定義しないとエラーになりますし
(自分で質問してて意味わからなくなってきた笑
0205デフォルトの名無しさん2015/03/31(火) 20:26:44.63ID:GaynNCnD
main.h
  extern 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
つまり分割コンパイルをする際に構造体のグローバル変数を扱いたい場合は
構造体を定義したヘッダファイルを用意するのが普通ですよね
0208デフォルトの名無しさん2015/03/31(火) 20:28:55.59ID:o9lmMpx3
>>206,207
すいません二回書き込まれてしまいましたorz

>>205
なるほど
0209デフォルトの名無しさん2015/03/31(火) 20:30:44.78ID:o9lmMpx3
>>205
ありがとうございます解決しました!
0210デフォルトの名無しさん2015/03/31(火) 20:32:15.65ID:GaynNCnD
>>205
追補 構造体のポインタをグローバルにするなら
構造体の定義は見えなくて良い

が、実際にメンバをアクセスするソースでは定義が欲しい

stdio.h 中の FILE 型がどうなってるかみてみると興味深いよ
 fopen で FILEのポインタ返して
 fread とかで FILEのポインタ渡して
 とやるけど、FILE *fp; fp->あれこれ のように構造体のメンバアクセスさせることはない
0211デフォルトの名無しさん2015/03/31(火) 20:38:53.75ID:ytppRCf1
分割コンパイルって久しぶりに聞いたなw
ソースが1つなんて30年前に書いたくらいだな
0212デフォルトの名無しさん2015/03/31(火) 20:48:40.69ID:o9lmMpx3
>>211
Cの入門書って分割コンパイルについて余り詳しく触れられてないよね???
(もしかしたら自分の勝手な思い込みかもしれないけど...)
javaとかだったら全部クラスで管理できてるからあまり意識しなくていいしw
分割コンパイルを聞いたのが久しぶりってどゆこと?
0213デフォルトの名無しさん2015/03/31(火) 20:57:40.63ID:o9lmMpx3
全然話し変わっちゃうけど
cってもうちょっと文字列操作が良ければ本当に神言語なんだけどなぁ
(じゃあc++使えって話だがw)
malloc freeの問題も速度を考えればGC必要ないし
0214デフォルトの名無しさん2015/03/31(火) 21:03:53.35ID:o9lmMpx3
c言語でも
string str1 = "こんにちは";
string str2 = "世界";
printf(str1 + str2);
みたいな感じができればかなり良いんがなぁ本当にw
0215デフォルトの名無しさん2015/03/31(火) 21:19:02.45ID:JyrC9ASF
http://www.zenshin.org/com/ilm_back_no/p_441/i414_42_1.jpg
http://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
>>214
オペレータのオーバーロード
そんな事するならC++でいいやんってのはやめてなw
0217デフォルトの名無しさん2015/04/01(水) 06:57:21.90ID:x8oI7Jv4
>>216
俺の勘違いならすまんが、cにオペレーターをオーバーロードする機能はないぞ
(c++にはあるが)
0218デフォルトの名無しさん2015/04/01(水) 06:57:51.35ID:+NNf2R4o
>>216
純Cの仕様にオペレータオーバーロードなくね
0219デフォルトの名無しさん2015/04/01(水) 06:59:59.35ID:x8oI7Jv4
だよなjavaですらサポートされてない機能がcにあるわけないだろ
0220デフォルトの名無しさん2015/04/01(水) 11:31:49.40ID:csbYE7ar
質問です
int型の配列、例えばint buf[32]に0か1を入れていき
最終的に1つの変数にまとめて代入したい場合はどうすれば良いんでしょうか?
要素を一つずつ判定して、ビットを操作するしかないんでしょうか?
0221デフォルトの名無しさん2015/04/01(水) 11:39:02.15ID:MIdK/UK7
n個の配列(取りえる値は 0または1) から n bitの整数にしたい

掛け算しつつ 総和取る?
val = 0;
for (i=0; i<n; i++) val += bit[i] * (1 << i)
0222デフォルトの名無しさん2015/04/01(水) 12:47:07.08ID:ubH4Nyz2
C++でサイズが固定長でよければ、std::bitset使ってto_ulongするのが楽。
0223デフォルトの名無しさん2015/04/01(水) 12:48:44.99ID:csbYE7ar
>>221
>掛け算しつつ送話取る?
実はそういう事ではなかったんですが
それで問題がなかったのでそれで行かせてもらいます。
簡潔に質問しようとして、いろいろと端折り過ぎました。
ありがとう御座います
0224デフォルトの名無しさん2015/04/01(水) 16:09:57.42ID:NSoDRANE
vecS のSとは何の略ですか?
最後にTが付くのはTypeの略であることは分かってます
0225デフォルトの名無しさん2015/04/01(水) 16:12:30.10ID:FyEUPoFw
stringかな?
0226デフォルトの名無しさん2015/04/01(水) 16:15:08.47ID:NSoDRANE
selectorですね
ありがとうございます
0227デフォルトの名無しさん2015/04/01(水) 17:02:04.06ID:wvOVoLI0
>>217-219
2行目は「オーバーロードだけ使って他はCにするならC++でいいだろってのはやめてな」って意味だろ
そもそもstringが無いからその指摘は的外れ
0228デフォルトの名無しさん2015/04/01(水) 17:28:29.04ID:Z8Exc9Vd
Cなら気合で配列詰め替えやで
0229デフォルトの名無しさん2015/04/01(水) 20:49:48.71ID:6hrzz7Tu
http://babibi123.up.seesaa.net/image/E99F93E59BBDE4BABA.JPG
0230デフォルトの名無しさん2015/04/02(木) 00:50:42.53ID:y9D7NuLL
>>227
>「オーバーロードだけ使って他はCにするならC++でいいだろってのはやめてな」

悪い、その文も俺の脳にはパースできないようだ…
0231デフォルトの名無しさん2015/04/02(木) 01:19:49.56ID:SixzQMxI
パースって?
ランディ?
0232デフォルトの名無しさん2015/04/02(木) 07:18:59.87ID:eRCzUZCp
「(開発環境は C++ で) オーバーロードは使う ベターC でいいだろ」

意図をくみとるのは俺には難しい
0233デフォルトの名無しさん2015/04/02(木) 12:11:39.83ID:lU+WA8ag
オーバーロードだけ使って他はCにするなら(他も)C++でいいだろってのはやめてな
string使ってんのにprintf使うならcoutでいいだろ
に置き換えろよ
0234デフォルトの名無しさん2015/04/02(木) 22:03:54.86ID:4kJYwdnO
http://i.imgur.com/z17E0kW.jpg
0235デフォルトの名無しさん2015/04/02(木) 23:00:31.34ID:RjF0eedH
構造体をmemsetしたいのですが、以下のやり方で宜しいでしょうか?
#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
>>235
やったらどうなった?
0237デフォルトの名無しさん2015/04/02(木) 23:47:08.20ID:RjF0eedH
>>236
一応問題なかったけど、memsetの第一引数はアドレス渡す訳だから
構造体のポインタを渡しちゃってもいいんだよね?(同じことのはずだから
0238デフォルトの名無しさん2015/04/03(金) 00:58:45.72ID:qd46Xef5
いいんだよ
0239デフォルトの名無しさん2015/04/03(金) 01:50:05.91ID:qd46Xef5
void init1(PS_COUNTER);
void init2(S_COUNTER*);

S_COUNTER counter;
init1(&counter);
init2(&counter);
でもいいし
0240デフォルトの名無しさん2015/04/03(金) 10:56:53.19ID:Vwd4pRr2
>>239
ありがとう
0241デフォルトの名無しさん2015/04/03(金) 13:04:47.12ID:Vwd4pRr2
memset出来る場合って構造体の中の変数が一致してる場合だけだよね?
例えば構造体のメンバがint型の変数とchar型のポインタだった場合には
型のタイプが一致しないからmemsetじゃなくて
初期化する関数を用意するかc++だったらコンストラクタに変数を初期化すべきですよね?
0242デフォルトの名無しさん2015/04/03(金) 13:57:25.79ID:qd46Xef5
上の構造体借りて言うと
typedef 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:Vwd4pRr2
>>242
char*はおkでしたか。
ちなみに確かchar*のみの構造体は普通'\0'でmemsetでしたよね

では逆にmemset出来ない場合はどのような場合でしょうか
0245デフォルトの名無しさん2015/04/03(金) 14:10:50.32ID:qd46Xef5
>>244
0も'\0'もやってる事は同じ

指定した範囲に1バイト単位で指定した値を書き込む以外の動作は出来ない
0246デフォルトの名無しさん2015/04/03(金) 14:13:18.44ID:Vwd4pRr2
ということは
構造体にどんな型のメンバ変数があっても
memset(&struct, 0, sizeof(struct));でおっけーってことで宜しいでしょうか?
0247デフォルトの名無しさん2015/04/03(金) 14:15:38.54ID:Vwd4pRr2
追加質問ですが
memsetでメンバの中にポインタが入ってる場合って0だとnullと同じになるんでしょうか?
無知ですいません
0248デフォルトの名無しさん2015/04/03(金) 14:20:53.43ID:Vwd4pRr2
気のせいだったかもしれないのですがたしか標準のヘッダにNULLが0でdefineしてあった気がしたのですが...
気のせいかも
0249デフォルトの名無しさん2015/04/03(金) 14:38:38.77ID:qd46Xef5
目的として全メンバの値を0にするならおっけー
#define 0 NULLなら同じ
0250デフォルトの名無しさん2015/04/03(金) 14:43:50.38ID:vpujmTHz
>>249
>目的として全メンバの値を0にするならおっけー
ちげーよ、バカ。死ね。

>#define 0 NULLなら同じ
ゲラゲラゲラゲラゲラゲラ

春だねえ。
0251デフォルトの名無しさん2015/04/03(金) 14:45:35.21ID:Vwd4pRr2
ありがとうございましたより理解が深まりました
0252デフォルトの名無しさん2015/04/03(金) 14:49:51.77ID:Vwd4pRr2
>>250
違うのでしょうか?
memsetで構造体の型分だけ0フィルするってことですよね?
ってことは構造体が持ってるメモリが0フィルされるってことだから
>>249さんが言ってる内容は正しいように感じますが
もし違うのならちゃんと説明してください
できないのなら単なる荒しですね
0253デフォルトの名無しさん2015/04/03(金) 14:51:49.44ID:Vwd4pRr2
構造体が持ってるメモリ
>構造体の持ってるメンバサイズ分だけ0フィルされる
0254デフォルトの名無しさん2015/04/03(金) 14:56:10.02ID:vpujmTHz
>>252
規格読めば全部書いてある事
NULLポインタは0と==で比較すると真
ポインタ変数に0を代入するとNULLポインタになる
でも、ビットパターンがオールゼロである事は保証されていない。

#define 0 NULL
に至っては、こんなの許している処理系は歴史上存在した事がない。(多分)
0255デフォルトの名無しさん2015/04/03(金) 15:07:36.25ID:Vwd4pRr2
>>254
そうでしたnullが0は処理系によって異なる場合があるので
保証はされてませんよね...
memsetする際はポインタがある場合は初期化関数を別で用意したほうが安全ですね
0256デフォルトの名無しさん2015/04/03(金) 15:12:05.18ID:Vwd4pRr2
>>254
実質0の場合がほとんどみたいですがvoid*なので
ポインタはNULLで初期化するのが確実ですね
上記の場合ではポインタが0で初期化されてしまうので
nullが0の処理系だと問題なく動作しますが
そうでない場合は不正なメモリアクセスになって致命的なバグになる危険性がある
という認識でよろしいでしょうか?
0257デフォルトの名無しさん2015/04/03(金) 15:42:56.77ID:qd46Xef5
>>254
流れを無視した指摘は無意味なんだが
> 標準のヘッダにNULLが0でdefineしてあった気がしたのですが
と書いてあるだろう
#defineの構文ミスはごめんやで

>>256
ヘッダで0として#defineされてるんだから
マルチプラットフォームじゃなければ問題無いよ
0258デフォルトの名無しさん2015/04/03(金) 15:54:18.84ID:vpujmTHz
>>257
> ヘッダで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
厳密に 整数0 及び 浮動小数点数0.0 及び NULLポインタ にしたいなら

構造体の初期化で省略指示
struct { あれこれ } var = { } ;
ぐらいで、あとは個別代入になりそうな気配
0262デフォルトの名無しさん2015/04/03(金) 16:09:11.05ID:Vwd4pRr2
>>261
ああ、memsetにこだわらないならそれの方がいいかも!
0263デフォルトの名無しさん2015/04/03(金) 16:10:22.33ID:Vwd4pRr2
ただ初期化関数を作りたい場合はmemsetも便利なんだよなぁ
かゆいところに手が届かんねw
0264デフォルトの名無しさん2015/04/03(金) 16:11:34.56ID:vpujmTHz
>>259
NULL(すなわち0)で初期化しなけりゃいけない。
memsetで初期化するのは正しくない。
0265デフォルトの名無しさん2015/04/03(金) 16:15:26.75ID:qd46Xef5
>>258
暇つぶしなら他に言いたい事があれば聞くけど

>>259
マクロで扱いの違いを吸収してるに過ぎないから
処理系が固定の場合はしなくていいよ
処理系の違い云々指摘するなら最初からNULLじゃなくnullptrをと指摘するべきだが
ただ荒らしたかっただけみたいだし気にしなくていいよ

>>260
>>257
0266デフォルトの名無しさん2015/04/03(金) 16:16:31.61ID:Vwd4pRr2
>>264
memsetした後にポインタだけNULLする初期化用の関数を用意するのはだめ?
0267デフォルトの名無しさん2015/04/03(金) 16:21:50.75ID:Vwd4pRr2
>>264
すまんな>>259がわかりずらい書き方だった
memset(&struct, NULL, sizeof(struct));はしてはいけないというのは理解してる前提で
とりあえず
memset(&struct, 0, sizeof(struct));した後に
ポインタだけNULLで初期化するって意味だった>>259は
0268デフォルトの名無しさん2015/04/03(金) 16:30:18.72ID:JiHctTne
stddef.h, stdlib.h, stdio.h などで宣言
#define NULL ((void *)0)

nullが、ゼロ以外のビットパターンを使う場合(処理系定義)、

NULL, 0 はC言語レベルのシンボルで、
これらがポインタに使われた際、

NULL, 0 を、nullポインタだと認識するのは、
コンパイラの仕事である

ただし、memsetで、0を設定した場合には、
どうなるか知らないけど
0269デフォルトの名無しさん2015/04/03(金) 16:33:15.91ID:BgGQT5vf
>>265 おっけー
浮動小数点数もやばげ 0.0 が フルビットoff って保障されてたっけか?

まぁ 初期化済み変数を static で持っておいて
引数へ代入するとか、回りくどいコードになったりするの巻
0270デフォルトの名無しさん2015/04/03(金) 16:40:26.22ID:vpujmTHz
>>265
知ったかぶりもここまでくると芸の域だな。

> マクロで扱いの違いを吸収してるに過ぎないから
マクロは関係ない。NULLポインタのビット表現がオールゼロじゃない処理系でもマクロNULLは0でなければいけない。
お前には理解不能だろう。

> 処理系の違い云々指摘するなら最初からNULLじゃなくnullptrをと指摘するべきだが
> ただ荒らしたかっただけみたいだし気にしなくていいよ
誰もC++の話なんかしていない。最初からCの話題だ。
>>235
#include <stdio.h>
#include <string.h>
0271デフォルトの名無しさん2015/04/03(金) 16:53:58.37ID:qd46Xef5
>>270
ボロが出た気がする
> NULLポインタのビット表現がオールゼロじゃない処理系でもマクロNULLは0でなければいけない。
ならポインタ初期化で p = 0でも p = NULLでもやってる事は同じ
つまり>>249の1行目で合ってる
自分で矛盾してる事言ってるってわかってない?
0272デフォルトの名無しさん2015/04/03(金) 16:58:22.66ID:BgGQT5vf
memset(ptr, 0 size) って
0を代入するんじゃなくて フルビット0 を埋めるんだろ?

ポインタ変数への代入と
その変数の器に結果的にフルビット0が書かれるのとは違う事象だとおもうんだが
0273デフォルトの名無しさん2015/04/03(金) 17:04:04.35ID:qd46Xef5
>>272
じゃあサイズ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
なんか質問した俺が置いてきぼりされてるんだがw
結局構造体にポインタがある場合でもとりあえず
memsetで0埋めしてからポインタをNULLで初期化する関数を用意してやれば
いいのん?
0276デフォルトの名無しさん2015/04/03(金) 17:20:46.62ID:JiHctTne
MISRA-C 2004 ルール 12.12
浮動小数点のビット表現も、使ってはならない。
浮動小数点のデータ構造は、処理系ごとに異なるかも


>>268
のように、ポインタに、NULL, 0 が使われた場合、
数値の0とは違って、
C言語レベルのシンボルとして扱われるのかも

stddef.h, stdlib.h, stdio.h などで宣言
#define NULL ((void *)0)
0277デフォルトの名無しさん2015/04/03(金) 17:29:56.92ID:yJj2v2fN
http://blog-imgs-60-origin.fc2.com/f/u/n/funnyoubenki/20130524222038b72.jpg
http://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:d2wNb10R
グロ注意
0279デフォルトの名無しさん2015/04/03(金) 18:00:55.14ID:JiHctTne
ポインタ・浮動小数点のビット表現は、
処理系依存だから、memsetで、0にはならないかも

ちゃんと、0を設定した方がよさそう
0280デフォルトの名無しさん2015/04/03(金) 18:02:46.79ID:vpujmTHz
>>271
予想どおり理解出来てないな。お前はバカだ。
0281デフォルトの名無しさん2015/04/03(金) 18:08:27.80ID:qd46Xef5
>>274
int16? 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
>>275
そのとおり。そして整定数の0(規格に書いてある)を代入しなければいけない。
浮動小数点数も0で初期化すべし。こっちは整定数の0でなくても良い。

int a;
void *p1 = 0; // 正しい
void *p2 = a - a; // (整定数でないので)正しくない
0283デフォルトの名無しさん2015/04/03(金) 18:23:11.65ID:vpujmTHz
>>281
バカが調子にのってるな。炎上学習法か?

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.

これでも理解できないんだろうな。バカだから。
0284 ◆QZaw55cn4c 2015/04/03(金) 18:38:53.61ID:rSWPypFh
>>282 に同意の上で、これを読めばいい
http://www.kouno.jp/home/c_faq/c5.html#0
0285デフォルトの名無しさん2015/04/03(金) 18:44:38.64ID:Vwd4pRr2
>>283
これってJIS X 3010:2003とどれ位ちがう?
SO/IEC 9899:1999 (E)は英語だし解釈間違えるとひどいことになりそうだからw
でもどっちも辞書としてつかうわけだよね?日本語使うからって広辞苑全文暗記してる人いないだろうし
(一人もいないとは言ってないがw)
0286デフォルトの名無しさん2015/04/03(金) 18:48:42.08ID:vpujmTHz
>>285
キミも頭悪いの?
jis x3010:2003は翻訳。違っていてはいけない。
0287デフォルトの名無しさん2015/04/03(金) 18:53:54.73ID:3hA9/32s
NULLポインタの内部表現は規格では決まっていない。0以外でもかまわない。処理系依存。
ソースコード上で、ポインタが期待される場所に 0 が現れると、
コンパイラはNULLポインタを生成する。内部表現は0でなくてもかまわない。
よって、#define NULL 0 と定義してあるからといって、
NULLポインタの内部表現が0とは限らない。
0288デフォルトの名無しさん2015/04/03(金) 18:57:13.36ID:Vwd4pRr2
>>286
せやな プログラミングの書籍で翻訳版とかあるが
結構原文の解釈と違う場合もあるみたいでry
これの場合は違っていてはいけないはずだから問題ないが
ISO/IEC 9899:1999 (E) のほうは目を通したこと無いから(JIS X 3010:2003はサラッとだが
ちょっと聞いてみたかっただけや堪忍してや
0289デフォルトの名無しさん2015/04/03(金) 19:47:54.46ID:qd46Xef5
>>283
で、それがどうした?
構造体のメンバにポインタがあってもmemset(&data, 0, sizeof(data))で問題無い
という話に対して混乱させようとする意図は何?
0290 ◆QZaw55cn4c 2015/04/03(金) 19:54:53.35ID:rSWPypFh
>>289
いや、それはさすがに問題あるのでは?
ヌルポインタは零ピットパターンとはかぎらないのだから
0291デフォルトの名無しさん2015/04/03(金) 19:55:51.49ID:vpujmTHz
>>289
予想どおり理解出来ないバカ。失笑

理解出来ずに荒らしてるのお前だけだから。
他はみんなわかったようだぞ。頭が悪いってかわいそう。
0292デフォルトの名無しさん2015/04/03(金) 20:00:37.31ID:i6ZKWUd3
>>289
ダメ 0点

偶然うまくいってるってだけ。
0293デフォルトの名無しさん2015/04/03(金) 20:12:41.66ID:ra8S3IJo
ISO/IEC 9899は何年も昔に第3改訂が出ているというのに
いつまで1999年とか2003年の化石的バージョン読んでるんだよ
最近見なくなったK&R信者並に老害すぎるだろ
0294デフォルトの名無しさん2015/04/03(金) 20:16:02.00ID:qd46Xef5
>>291
自分に自信が無いから攻撃的なんだよなわかるわかる

そっくりすぎて笑ってしまった
攻撃的な人が攻撃できないタイプとは?攻撃的な人の心理と対処法
ttp://worldlovestandard.com/shuri/blog/?p=1019
> (「この人はバカだから言っていることを理解できないんだ」
> などと批判することで、プライドを守りながら離れていきます)、
0295デフォルトの名無しさん2015/04/03(金) 20:20:36.03ID:JiHctTne
ポインタのNULL, 0 は、C言語レベルの特殊なシンボルで、
nilみたいな、またはエラー値のような、
論理的な値と、考えた方がよさそう

数値の0とは、概念が全く異なる
0296 ◆QZaw55cn4c 2015/04/03(金) 20:23:07.09ID:rSWPypFh
>>294
そんなんじゃだめだと思うよ‥
memset() でポインタや浮動小数点数を初期化しちゃダメ、(void *)0 や 0.0 は零ビットパターンと違うから
ていうのは頻出だよ

心理学を持ち出す先生はあてにあらない、っていうのは定評になっているよ
0297デフォルトの名無しさん2015/04/03(金) 20:41:00.13ID:vpujmTHz
>>294
規格引用で指摘されても理解出来ないなんて惨め過ぎるぞ、お前。
バカ過ぎて話にならない。
0298デフォルトの名無しさん2015/04/03(金) 20:51:33.95ID:JiHctTne
struct を、とりあえず memset で初期化する迷信

ttp://www.kijineko.co.jp/tech/superstitions/initialization-by-memset.html

ここに書いてある
0299デフォルトの名無しさん2015/04/03(金) 21:00:43.37ID:csco25n1
こういうバカはどうしようもないな。
Cみたいな低レベル御用達のプログラミング言語をつかまえて
勝手に環境非依存の前提を妄想して文句を垂れる低能。
特定の処理系前提でゼロ梅することはおかしくないし
当たり前のように行われている
0300デフォルトの名無しさん2015/04/03(金) 21:14:31.56ID:qd46Xef5
>>297
それで?
他にも言いたい事あれば聞くけど?
煽るのが好きなのはわかったから
喧嘩したいなら買ってくれる人がいそうな所行った方がいいよ
同じ喧嘩腰で返されないと空しいだけでしょ
0301デフォルトの名無しさん2015/04/03(金) 21:17:15.94ID:vpujmTHz
>>300
理解してないのはお前だけ。必死すぎるぞバカ。
0302デフォルトの名無しさん2015/04/03(金) 21:29:25.48ID:qd46Xef5
必死なのはそっちなんだよなぁ・・・
何も無いで終わればいいのにやっぱり釣りか
0303 ◆QZaw55cn4c 2015/04/03(金) 21:48:53.87ID:rSWPypFh
>>299
自慢するほどのことじゃないと思うよ‥
0304デフォルトの名無しさん2015/04/03(金) 21:53:06.36ID:vpujmTHz
>>289がフルボッコされてるのに必死になってるのはどこのバカでしょう?
0305デフォルトの名無しさん2015/04/03(金) 23:24:54.07ID:8j0ikKGU
http://4.bp.blogspot.com/-G6-fhuENLWI/Ue_gzsXfQLI/AAAAAAAALxI/Iwlm-ckJaWM/s1600/Suzy+%252812%2529.jpg
0306デフォルトの名無しさん2015/04/04(土) 06:46:28.56ID:jDVLk+hW
>>299
知っててやる、知らない奴には教えてやる、ならいいけど
>>300 みたいに何言っても分からない人はいるし、他に正しい方法があるんだから
そっちの方法を教えるべきなんじゃないかな
0307デフォルトの名無しさん2015/04/04(土) 09:09:08.86ID:TUTn0Lza
ID:qd46Xef5のような道化が一匹迷い込むとスレが伸びるな
道化以外はぬるぽの真髄を理解したようでめでたし
0308デフォルトの名無しさん2015/04/04(土) 10:49:57.51ID:TSMAKk87
観点の問題だろ。値のクリアじゃなくて単純に全ビットクリアしたい時も有る。
そういう時はmemset0の方がわかりやすい。

memset0で値が0にならない事くらい普通分かる
0309デフォルトの名無しさん2015/04/04(土) 10:54:05.95ID:TUTn0Lza
ID:qd46Xef5は日が変わって今日はID:TSMAKk87か?
ねーよ、バカ。
0310デフォルトの名無しさん2015/04/04(土) 11:05:24.75ID:TSMAKk87
そんじゃあ構造体の領域空にしたいときどうすんの。
他に構造体の領域全ビットクリア出来る方法あんの
0311デフォルトの名無しさん2015/04/04(土) 11:09:10.78ID:EOGwyZAB
これ食って寝ろ
http://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
いやだからmemset0で空にした後、
浮動小数点とかは=0で初期値セットするだろ。

memsetは値をセットする使い方はせんだろ
0314デフォルトの名無しさん2015/04/04(土) 11:29:40.27ID:GZJxoxqq
>310
>そんじゃあ構造体の領域空にしたいときどうすんの

Cは知らんがC++では
v = unko{}; // value-initialize
または
new(&v) unko{};
0315デフォルトの名無しさん2015/04/04(土) 11:31:12.03ID:TSMAKk87
それは要素を全部空にしろって意味だろ
0316デフォルトの名無しさん2015/04/04(土) 11:49:57.82ID:5nipgFZd
これ食って寝ろ
http://contents.eroga-station.com/image/m47548gd/000059/01.jpg
0317デフォルトの名無しさん2015/04/04(土) 12:22:56.19ID:69IByEFn
おまえら、ほんと進歩ないな・・・ 3年ブランクあって久々に着たけど、毎度毎度の同じことしかしてないな・・
0318デフォルトの名無しさん2015/04/04(土) 12:32:57.71ID:TUTn0Lza
>>313
やっと>>275まで追いついたか。バカ。
>>238-239は取り消すのか?

>>317
毎年、新規バカが颯爽と現れるのでしょうがない。
0319デフォルトの名無しさん2015/04/04(土) 12:35:30.49ID:TSMAKk87
俺は ID:qd46Xef5 じゃ無いから。
0320デフォルトの名無しさん2015/04/04(土) 12:38:16.57ID:hFNOADFZ
取り消すのは245と249だけでいい
それ以外は会話がずれてるだけで間違ってはいない
0321デフォルトの名無しさん2015/04/04(土) 12:39:58.49ID:TUTn0Lza
あっそ、そういう設定でもいいけど。>>237n-以降を読んでから発言するように。
0322デフォルトの名無しさん2015/04/04(土) 12:56:52.12ID:TUTn0Lza
>>320
>>257,>>265,>>271,>>273,>>281,>>289が正しいとでも?
03233202015/04/04(土) 13:14:35.02ID:q7Jw3FnS
>>322
空にする(バイトゼロ埋め)ことと値のゼロ代入を一貫して区別していて
もともとの>>235を前者として解釈したと推察すれば、誤りではない。
「(バイトゼロ埋めの手段としては)問題無い」という
アスペな主張なのではないのか
0324 ◆QZaw55cn4c 2015/04/04(土) 13:35:24.48ID:ugaLmOKA
新しいネガティブキャンペーン発表しまぁす
「realloc() 使う子いけない子!」
0325デフォルトの名無しさん2015/04/04(土) 13:47:34.18ID:TUTn0Lza
>>323
>>257, >>265は#define 0 NULL(爆笑)ならば、ヌルポのメモリ上表現もゼロであると思い込んでる証拠
一貫して、そのように思い込んで爆笑発言を繰り返している
0326デフォルトの名無しさん2015/04/04(土) 13:48:39.27ID:+ZfwIkd7
使っちゃいけないようなものが用意されている理由は?
0327デフォルトの名無しさん2015/04/04(土) 13:53:26.85ID:TUTn0Lza
バカを釣るための釣針
0328デフォルトの名無しさん2015/04/04(土) 14:20:13.36ID:+L10ZiLX
nullポインタが0じゃないとか、浮動小数点がIEEE754じゃないとかの
処理系なんて実際にあるの?
ありもしないとか極めて希少な環境への移植を考えて「正しい」コーディング
を頑張るなんて無駄じゃないの?
0329デフォルトの名無しさん2015/04/04(土) 14:57:32.40ID:TUTn0Lza
素人や引退じいさんの趣味プロクラムならそれでも良いよ。
0330デフォルトの名無しさん2015/04/04(土) 15:31:09.91ID:vnA/3gIx
そこまで規約に乗っ取らないとダメって、一体、何を書いてるわけ?
0331デフォルトの名無しさん2015/04/04(土) 15:37:58.36ID:ugaLmOKA
汝のソフトウェアは汝のハードウェアより齢長ければなり
0332デフォルトの名無しさん2015/04/04(土) 15:38:13.07ID:TUTn0Lza
素人や引退じいさんが作る趣味プログラムの補集合だよ。

1行増えるだけがそんなに面倒ならPGやめろよ。
0333デフォルトの名無しさん2015/04/04(土) 15:43:20.74ID:knpZoffv
1行増やしただけで品質上げた気になってるのが居ると聞いて。
0334デフォルトの名無しさん2015/04/04(土) 15:48:11.26ID:jZ5PxFf4
>>329
プログラムの前提条件をどうするかに依る話なので
勝手に他人に100%ポータビリティを要求しないでください。

ただ前提がありながら前提を説明できない低能は死ぬべき。
アメリカ人の糞オプソの殆どが該当
0335デフォルトの名無しさん2015/04/04(土) 15:56:14.75ID:TUTn0Lza
>>334
どういう前提条件があると
static const struct a zero = {0};
*p = a;
より
memcpy(p, 0, sizeof(struct a));
が推奨されるのかね? また推奨する理由は?
0336デフォルトの名無しさん2015/04/04(土) 16:00:18.00ID:+L10ZiLX
巨大なPOD配列を高速に初期化しなければいけないとか色々あるわな
0337デフォルトの名無しさん2015/04/04(土) 16:05:27.37ID:+L10ZiLX
>>329
規格の非現実的な部分にまでこだわるのこそ趣味の領域じゃねーの
0338デフォルトの名無しさん2015/04/04(土) 16:36:29.67ID:TUTn0Lza
C99のコンパウンドリテラルで初期化すれば大抵のコンパイラはmemcpy相当の処理になる。
巨大なPODをメモリ上に持つ必要もない。

C99のコンパウンドリテラルが利用できない、または利用できてもmemcpy相当に最適化できない
マヌケなコンパイラの下で巨大なPOD配列を初期化する場合という極めて特殊な状況だけだね。
0339デフォルトの名無しさん2015/04/04(土) 16:45:42.54ID:TUTn0Lza
>>338は>>328でマヌケな発言していた奴か。無視してたんだがID:jZ5PxFf4と間違えてレスしちまった。
引き続きID:jZ5PxFf4の「前提条件」とやらはレスを待つ。

ついでだから>>328にもレスしとく

誤解してるようだが、頑張ってるわけじゃなくて、ジジイの悪習慣を非難しているだけだ。
memsetで初期化する合理的な理由なんか存在しない。反論したいなら合理的な理由を出せばよい。
0340デフォルトの名無しさん2015/04/04(土) 16:59:27.17ID:+ZfwIkd7
趣味でプログラム書いているの?
どんだけヲタッキーだよw

そういった奴は、会社からは重宝されるだろうな
土日とか打刻なしでプログラム書いてくれたりするの?
0341デフォルトの名無しさん2015/04/04(土) 17:19:57.93ID:+L10ZiLX
>>338
>巨大なPODをメモリ上に持つ必要もない。
そんなこと言われても。。。
例えば既にメモリ上にある(画像データとかの)巨大なPOD配列を
ゼロ初期化したい場合はどうするのが正しいわけ?
0342デフォルトの名無しさん2015/04/04(土) 17:36:12.49ID:vnA/3gIx
>>334
え?OSSなら、後で気付いた誰かがfixするだろ
0343デフォルトの名無しさん2015/04/04(土) 17:38:46.98ID:+L10ZiLX
struct Pixel
{
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
>>340
引退したジイさんは暇なんだろ。でも新しい事を学習する能力は無いらしく、
現役時代のスタンダードであるmemsetでの初期化を頑固に使い続けているようだ。

>>341
そのPODデータはポインタ含む、そういう前提だからな。
それならば、先頭要素に構造体の代入、残りをmemcpy。
0345デフォルトの名無しさん2015/04/04(土) 17:39:56.18ID:vnA/3gIx
>>340
そういう場所は、VBAとAccess使えるだけで御の字だろ
まぁ、そういう場所は、これから全部、淘汰されるよ
0346デフォルトの名無しさん2015/04/04(土) 17:48:11.97ID:NZvoao1F
>>333
メンバにポインタがある時の話だよ

>>344
ID:qd46Xef5は俺だが・・・
同一人物視した方が都合がいいのかわからんが
一度統合失調症で調べてみた方がいい
既に終わってた話をわざわざ>>307で蒸し返し荒らす目的なんだろ?
#defineの件は>>257見ろ
0347デフォルトの名無しさん2015/04/04(土) 17:48:54.04ID:NZvoao1F
前半のアンカ>>343だった
0348デフォルトの名無しさん2015/04/04(土) 17:55:30.12ID:TUTn0Lza
>>343
void 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
>>348
その相手はもう>>304で終わってるからな
粗探しも好きなようだがそんな事してて空しくならないのか・・・
0350デフォルトの名無しさん2015/04/04(土) 18:18:16.55ID:TUTn0Lza
>>349
本人が間違いを認めずに逃亡したから念押ししておかないとな。ウソが放置されるのは良くない。
>>325が全てで良いな。
0351デフォルトの名無しさん2015/04/04(土) 18:46:59.39ID:vnE4VUnZ
配列のコピーってforループまわすのと
int a[][3] = {
{1,2,3},
{4,5,6},
{7,8,9},
{10,11,12}
};
int b[4][3];

memcpy(b, a, sizeof(a));
みたいにmemcpyすんのってどっちのほうがいいのかそれともどっちでもいいのか?
0352片山博文MZ ◆T6xkBnTXz7B0 2015/04/04(土) 18:59:48.64ID:AbppvLIl
>>351
むしろmemcpyより早い方法があったら、教えてほしい
0353デフォルトの名無しさん2015/04/04(土) 19:02:12.20ID:vnE4VUnZ
やっぱ一番効率良さそうだよなぁmemcpy
0354デフォルトの名無しさん2015/04/04(土) 19:17:02.70ID:+L10ZiLX
>>348
それ試してみたけどmemsetの2.5倍時間かかるわ、当たり前だけど
VC++2013、core-i7
0355デフォルトの名無しさん2015/04/04(土) 19:35:34.03ID:TUTn0Lza
>>354
うん、memmoveだからね。
そうなった時にスピード重視でmemsetでの初期化は合理的な選択だと思うよ。
0356デフォルトの名無しさん2015/04/04(土) 19:39:00.32ID:TUTn0Lza
>>352
http://freej.dyne.org/codedoc/fastmemcpy_8cpp_source.html
0357デフォルトの名無しさん2015/04/04(土) 19:57:47.93ID:NZvoao1F
>>350
1日中貼り付いて惨めだと思わない?
>>249の「目的として全メンバを0にするなら」という前提を無視して混乱させるのはいつまで続ける気?
0358デフォルトの名無しさん2015/04/04(土) 20:40:40.45ID:b0zg4ied
/***vs2013とgcc5とclang3でやってみた***/
#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)
こういう意図でいいのかな?
***/
0359 ◆QZaw55cn4c 2015/04/04(土) 21:12:33.15ID:ugaLmOKA
ポータビリティを小さな労力で確保できるのなら、そうしたほうがいい

浮動小数点の零はビットパターンオール0 とは限らないし、
ヌルポインタもビットパターン零を想定しないほうがお行儀がいい

AMD64 になって、sizeof(void *) != sizeof(int) が当たり前になった世界でいろいろ苦労することもあるというのに、
memset() で押し通す必要があるのか?
そこまでして論破されたくない、というチンケなプライドは理解に苦しむ
0360デフォルトの名無しさん2015/04/04(土) 21:29:51.59ID:j1GP0GXk
cやc++を選ぶ時点で、大概は無限のポータビリティより優先すべき項目があるはず
低レベルな処理だと、環境依存でバイナリイメージ決め打ちじゃないとかけない。

アプリ系でも数値計算系で浮動小数点がIEEE準拠じゃないとか、その時点でプラットフォームとして不適切なアプリが多いよね。
0361デフォルトの名無しさん2015/04/04(土) 21:35:21.35ID:TUTn0Lza
>>357
#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:ugaLmOKA
でも memset() で「初期化完成しました!」は恥ずかしいと思うよ‥
0365デフォルトの名無しさん2015/04/04(土) 21:59:03.27ID:jIu2FuGY
ここでmemset使うなといっている奴も、
実際には半数はmemset使ってる。
俺もそうだ。しかし、嘘をついているわけではない。
公共性の高い場所で、処理系依存になる方法を薦めるわけにはいかないのだ。
諸事情を分かってて使っている場合は良い。自分は分かってる。だからOK。
そういう理屈だ。
0366デフォルトの名無しさん2015/04/04(土) 22:08:21.30ID:ugaLmOKA
>自分は分かってる
あぶないよね、これって
0367デフォルトの名無しさん2015/04/04(土) 22:25:06.12ID:jIu2FuGY
もちろん皮肉のつもり
0368デフォルトの名無しさん2015/04/04(土) 22:41:11.59ID:NZvoao1F
>>361
1行目は>>246に対して
2行目は>>248に対して
一緒にして考えるからそうなる
プログラムしてるなら先入観や思い込みは捨てるだろう普通
0369デフォルトの名無しさん2015/04/04(土) 23:13:57.48ID:nF+pPxHo
http://www.lollipop.sg/sites/default/files/public/article/images/gallery/tumblr_m60o89emmp1qin5n0o1_r2_250jpg1370842917268-data_0.jpg
http://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
>>368
「#define 0 NULL(大爆笑)なら同じ」が
>>248への回答だって。笑わせてくれるねえ。

>>247-248への回答じゃないと意味が通じないぞ。
バカはどこまでもバカだな。

>>281
> ソース上はp=0とp=NULL同じだから
> 0でmemsetしたらそれでいいよ
ヌルポが0だからmemsetでオーケーと言ったの忘れたか?
0371デフォルトの名無しさん2015/04/05(日) 00:55:17.42ID:Vn0iAlJU
まだやっとんのかいな〜
0372デフォルトの名無しさん2015/04/05(日) 01:40:54.33ID:db7WcjYS
>>370
>>246のおっけーに合わせておっけーって返してるように見えるが
memset(p, 0, size) = memset(p, NULL, size)って事だろ
0373デフォルトの名無しさん2015/04/05(日) 02:21:58.52ID:kpY9v30e
>>372
memsetでnull使うのは間違いじゃ?
0374デフォルトの名無しさん2015/04/05(日) 02:24:39.70ID:db7WcjYS
p = NULLは忘れろ
第二引数が0でもNULLでも同じって事だろ
0375デフォルトの名無しさん2015/04/05(日) 02:34:44.94ID:kpY9v30e
いやだからnullは0じゃないぞ
0376デフォルトの名無しさん2015/04/05(日) 02:42:02.15ID:Vn0iAlJU
そんな小さなことばっかこだわってたら、全く仕事すすまなくね?
0377デフォルトの名無しさん2015/04/05(日) 02:43:52.88ID:kpY9v30e
0である可能性もあるが
void*と0が同じ型なのかお前の頭の中ではと言われるぞ
0378デフォルトの名無しさん2015/04/05(日) 02:53:29.17ID:db7WcjYS
>>375
>>248 > NULLが0でdefineしてあった
0379デフォルトの名無しさん2015/04/05(日) 02:59:24.27ID:kpY9v30e
>>378
前のレスちゃんと読めよ
まぁでも日曜プログラマで実行してエラー出てないんならいいんじゃねえの?
0380デフォルトの名無しさん2015/04/05(日) 03:06:38.03ID:mYW6PIcT
memsetの第二引数はint型だから、0で整数型の0になる。
#define NULL 0 にしてる時は、NULLが整数型の0になってんだから、意味的には同じだろう。

#define NULL 0 はあまり良くは無いがな。
0381デフォルトの名無しさん2015/04/05(日) 03:07:26.60ID:db7WcjYS
>>379
前ってどの前だ
0382デフォルトの名無しさん2015/04/05(日) 03:12:04.79ID:hmfaf3IY
http://www.bntnews.co.uk/images/news/2013/dyl4fq7e65qh8as04kn8qma78ytx7oaa.jpg
http://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
>>372
#define 0 NULL(爆笑)クンは
memsetで初期化した後、ポインタメンバをNULLで初期化すればよいか? (>>275)
という問いに、memsetだけでおけーと回答しているわけだ。

>>281
> ソース上はp=0とp=NULL同じだから
> 0でmemsetしたらそれでいいよ
0384デフォルトの名無しさん2015/04/05(日) 10:26:48.70ID:meaYiL0S
>>374
整定数0をポインタに変換したものがぬるぽと規定されているけれど、
ぬるぽを整数に変換したときに0になるとはどこにも書かれていない。
#define NULL ((void *)0)
なら間違い。

>>376
C FAQに書かれている事くらいはこだわれ。
0385デフォルトの名無しさん2015/04/05(日) 11:03:14.82ID:b6zpPJ9/
C FAQは正直キモいわ
大部分は正しいけどオナニー入りすぎ
それに何よりウザいのが他人に説明無しに「C faqが〜」みたいに
自分のオナニー文書が世界の常識と言わんばかりに語り出す信者
0386デフォルトの名無しさん2015/04/05(日) 11:14:27.26ID:db7WcjYS
>>384
> NULLが0でdefine
って前提で話が進んでる所で頓珍漢な事を言い出す奴?
0387デフォルトの名無しさん2015/04/05(日) 12:03:57.35ID:meaYiL0S
その前提は質問者の曖昧な記憶を確認せずに#define 0 NULL(大爆笑)クンの作った間違った前提
NULLはヌルポ定数であり、ヌルポ定数は0または(void*)0
ところが、ポインタが使用できるあらゆる箇所で0を使って良いのは
sizeof(void*)==sizeof(int)の場合だけ
この条件が指定されていないのだからNULLは(void *)0とするのが正しい
0388デフォルトの名無しさん2015/04/05(日) 12:07:19.45ID:meaYiL0S
>>385
バカにいちいち説明するのは面倒なのでFAQが作られている
FAQすら読んでねーバカは近寄るなと言う事だよ
0389デフォルトの名無しさん2015/04/05(日) 12:32:59.67ID:db7WcjYS
>>387
質問者が実際に
>>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+
20年前ですら古臭くて素人臭かったアレに今更
0392デフォルトの名無しさん2015/04/05(日) 12:36:54.20ID:XqnpqZbw
>>385
>大部分は正しいけどオナニー入りすぎ

間違いだ、「全部」正しい、オナニーなのは C99

>それに何よりウザいのが他人に説明無しに「C faqが〜」みたいに
>自分のオナニー文書が世界の常識と言わんばかりに語り出す信者

C FAQ はもともと英語圏で発生した世界の常識だ
信者がたけのこ様に生えてくるのも計算ずみ
0393デフォルトの名無しさん2015/04/05(日) 12:37:54.75ID:XqnpqZbw
>>391
C89/K&R2 が至高、C99 以降はオナニー
0394デフォルトの名無しさん2015/04/05(日) 13:14:52.58ID:HyPEFrWR
http://i.imgur.com/7IPlk3Y.jpg
0395デフォルトの名無しさん2015/04/05(日) 14:02:11.39ID:CrZCL72O
『どうして配列は代入できないのに左辺値(lvalue)なのか。』
『A:ANSI C規格は「変更可能な左辺値(modifiable lvalue)」を定義して いる。その中に配列は入っていない。』

アスペ過ぎるだろC FAQ
0396デフォルトの名無しさん2015/04/05(日) 14:45:38.75ID:meaYiL0S
>>389
「気がしたのですが」をうのみにしたバカが設定したバカ前提で
お前がint引数にNULL与えても良いとか寝言ほざいてたから指摘しただけだ。
横道なのでどうでもよい。

で、巻き戻すと
>>372
#define 0 NULL(大爆笑)クンの爆笑発言
> 目的として全メンバの値を0にするならおっけー
> #define 0 NULLなら同じ
1行目は>>246への回答だと言い逃れているが、
が、質問は
> 構造体にどんな型のメンバ変数があっても
なので、どんな型(ポインタ型)でもおっけーと答えている。
#define 0 NULL(大爆笑)クンはぬるぽのメモリ表現がオールゼロと
は限らない事を知らなかったバカという結論にかわりはない。
0397デフォルトの名無しさん2015/04/05(日) 14:46:43.87ID:meaYiL0S
>>395
The 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
>>396
鵜呑みも何も「気がした」に対して「なら同じ」って言ってるだろ?
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
>>387
> ところが、ポインタが使用できるあらゆる箇所で0を使って良いのは
> sizeof(void*)==sizeof(int)の場合だけ

これどういうこと?
ポインタが要求される文脈なら sizoef によらず 0 を使ってもいいだろうし、
可変長引数とか一部の例外では sizeof によらずやっぱりダメだろうし、
sizeof と 0 が使えるかどうかの関連がわからない。
0401デフォルトの名無しさん2015/04/05(日) 16:43:55.41ID:kpY9v30e
変な質問だが、
malloc(もしくはcalloc)して動的確保したメモリが足りなくなったとき
再度確保するにはreallocするわけだがそのreallocしたものを再度確保するには
reallocさらにそのreallocしたものを再度確保するにはreallocさらにさらに
...と事実上半永久的にrealloc出来るわけだよな?
0402デフォルトの名無しさん2015/04/05(日) 17:22:15.06ID:XqnpqZbw
>>401
そのとおり
メモリがある限りにおいて realloc() の反復は可能
0403デフォルトの名無しさん2015/04/05(日) 17:25:58.27ID:kpY9v30e
>>402
りょーかい!さんきゅ
0404デフォルトの名無しさん2015/04/05(日) 17:33:42.77ID:meaYiL0S
>>400
可変長引数関数の引数に0は使えない、(void *)0は使える。
0405デフォルトの名無しさん2015/04/05(日) 17:42:57.41ID:meaYiL0S
>>398
> 1行目は「目的として全メンバの値を0にするなら」って前提があるだろ
全メンバの値を0にしちゃいけない質問(>>246-247)に対して、勝手に前提
つくってmemsetでおっけーと答えたといってるんだな。
それでも、お前がぬるぽのメモリ表現がオールゼロとは限らない事を知ら
なかったバカという結論にかわりはないじゃないか。 バカ。
0406デフォルトの名無しさん2015/04/05(日) 17:44:45.07ID:SZGQAxvY
>>404
それはわかってる。
でもそれは sizeof(void*)==sizeof(int) であろうがなかろうが変わらないよね?
0407デフォルトの名無しさん2015/04/05(日) 18:31:19.96ID:meaYiL0S
>>406
そういやそうだね。となると#define 0 NULL(大爆笑)クンが必死で主張している
#define NULL 0
なる環境はC99(C89?)では存在しないという事になるね。
0408デフォルトの名無しさん2015/04/05(日) 18:39:13.00ID:SZGQAxvY
>>407
え?なんでそうなる?
0 はヌルポインタ定数のひとつなんだから、 #define NULL 0 は C/C++ 規格の実装として正しいでしょ。
0409デフォルトの名無しさん2015/04/05(日) 18:44:38.21ID:meaYiL0S
>>408
C++はnullptrが出てきたので脇にのけといて、Cでは可変長引数関数にNULL渡せないから困る
0410デフォルトの名無しさん2015/04/05(日) 18:54:59.34ID:SZGQAxvY
>>409
確かに困る。困るが、それで #define NULL 0 という実装が存在しないという事にはならないよ。
0411デフォルトの名無しさん2015/04/05(日) 18:57:50.63ID:meaYiL0S
sizeof(int) == sizeof(void *)かつヌルポのメモリ上表現がオールゼロな環境ではありか。
0412デフォルトの名無しさん2015/04/05(日) 19:00:57.59ID:SZGQAxvY
>>411
sizeof もメモリ上の表現もどうだろうと関係ないよ。
C FAQ 読み直したほうがいい。
http://www.kouno.jp/home/c_faq/c5.html#5
0413デフォルトの名無しさん2015/04/05(日) 19:11:09.40ID:meaYiL0S
>>412
可変個引数関数ではポインタにキャストしろ、なんて処理系作ったらぶっ殺されても文句は言えない。
(void *)NULL
とか大笑いだわ。NULLが未定義の方が100倍まし。
0414デフォルトの名無しさん2015/04/05(日) 19:28:08.31ID:SZGQAxvY
>>413
残念ながらそれで規格には合致してるんだよ。
C/C++ を使うプログラマはその可能性を理解している必要がある。
(だから今時 NULL や可変長引数なんて使いたくないんだよ。)
0415デフォルトの名無しさん2015/04/05(日) 20:06:19.82ID:db7WcjYS
>>405
○○するならOK(しないならNG)という事もわからないの?

> #define NULL 0
> なる環境はC99(C89?)では存在しないという事になるね。
墓穴掘った?
埋めといてあげるからその辺にしておけば・・・
0416デフォルトの名無しさん2015/04/05(日) 20:06:54.26ID:meaYiL0S
http://c-faq.com/null/nullreq.html
これには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
>>415
またバカが調子に乗ってきたな。それでも↓という結論には何の影響もないから。

> 1行目は「目的として全メンバの値を0にするなら」って前提があるだろ
全メンバの値を0にしちゃいけない質問(>>246-247)に対して、勝手に前提
つくってmemsetでおっけーと答えたといってるんだな。
それでも、お前がぬるぽのメモリ表現がオールゼロとは限らない事を知ら
なかったバカという結論にかわりはないじゃないか。 バカ。
0418デフォルトの名無しさん2015/04/05(日) 20:14:50.05ID:XqnpqZbw
>>409
キャストすれば渡せるよ
昔の教科書にはよく、execl("/usr/bin/rm", "rm", "-rf", (char *)0) ってあっただろう?
0419デフォルトの名無しさん2015/04/05(日) 20:17:03.78ID:meaYiL0S
>>414
http://www.kouno.jp/home/c_faq/c5.html#5
5.4:
| 整数0とヌルポインター 定数の違いをはっきりさせたい場合は、NULLをヌルポインタが必要で あるところならどこに使用してもよい。
これはexecl(..., NULL);と書けると言ってるように思える。
0420デフォルトの名無しさん2015/04/05(日) 20:17:34.58ID:XqnpqZbw
>>413
それはそれであっているよ。
可変長引き数は、変数のサイズのバリエーションが少なくなるように決めうちされるからね
0421デフォルトの名無しさん2015/04/05(日) 20:21:52.49ID:XqnpqZbw
>>419
それは実装を考慮せずに機械的に文言だけで判断したためにおきる、誤った拡大解釈だね。
いちど execl(), execv() をびしばし使ってみれば自然にわかるようになるよ‥
0422デフォルトの名無しさん2015/04/05(日) 20:21:59.27ID:meaYiL0S
>>418
アスペ? 文脈読めよ。
(文字通りの)NULL渡せなくて困ると言っている。
0423デフォルトの名無しさん2015/04/05(日) 20:28:57.87ID:SZGQAxvY
>>419
その直後のパラグラフにちゃんとキャストが必要な場合について書いてあるよ。
http://www.kouno.jp/home/c_faq/c5.html#4
> ... それでも特に関数の引数ではNULLに(0にも必要であるのと同じ で)明示的なキャストが必要かもしれない。 ...
0424デフォルトの名無しさん2015/04/05(日) 20:29:57.77ID:XqnpqZbw
>>422
「マクロ NULL を使うとヌルポインタを可変長引数関数に渡せない」と正確に書いてほしかったね
俺は ポインタや double/float を memset() で 0 クリアすることで初期化したことにする、というのには反対の立場だけど
0425デフォルトの名無しさん2015/04/05(日) 20:41:49.60ID:meaYiL0S
>>421
C FAQの5.11が削除されている謎は残るけど、まあ、いいや。
そういうぶっ殺したくなる処理系も規格に合っていて存在しうるという事で、
可変個引数の関数呼び出しはこれから注意しよう。
0426デフォルトの名無しさん2015/04/05(日) 20:59:29.00ID:db7WcjYS
>>417
もう他の手は思いつかないから今度はコピペ?笑わせてもらったよ
それについては「○○するならOK(しないならNG)という事もわからないの?」で終わり
0427デフォルトの名無しさん2015/04/05(日) 21:00:33.25ID:meaYiL0S
>>415
調子に乗ったタワゴトは読み飛ばしてたわ。バカの浅知恵。

> ○○するならOK(しないならNG)という事もわからないの?
逆は必ずしも真ではないって、中学校で学習する論理学の初歩だぞ。

で、前提とやら(目的として全メンバの値を0にするなら)は、>>246の質問のどこから出てきたんだ?
0428デフォルトの名無しさん2015/04/05(日) 21:16:31.30ID:db7WcjYS
>>427
なんでそっから出てくるんだよw
よく読んでからレスしてくれ
0429デフォルトの名無しさん2015/04/05(日) 21:31:28.08ID:EnZWbZxg
もう2ショットチャットとかに行けよ
0430デフォルトの名無しさん2015/04/05(日) 22:11:47.78ID:meaYiL0S
>>428
壊れてきたか? そっからも何も

> 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
>>430
「目的として全メンバの値を0にする」って前提なら>>246はおっけーって事で
どこから出てきたじゃなく回答として「○○ならOK」って意味だろ
>>249の1行目そのままだろう何がわからないんだ
0432デフォルトの名無しさん2015/04/05(日) 23:18:48.24ID:t7rp2m9d
「目的が全メンバをゼロにするなら」が間違ってる。
ポインタ型はゼロクリアではダメな場合がある事をバカだから知らなかった。
0433デフォルトの名無しさん2015/04/05(日) 23:37:46.49ID:db7WcjYS
>>432
全メンバ「の値」
0434デフォルトの名無しさん2015/04/05(日) 23:45:37.44ID:St9gO3eY
>>432
>>308>>313読めばゼロクリアと初期化を別に考えてるのはわかるだろ
ゼロクリアはきっと未使用時に仮想マシンの可変長ディスクをコンパクションさせるような
特殊な事情があんだよ。きっと
0435デフォルトの名無しさん2015/04/05(日) 23:48:00.48ID:EnZWbZxg
>>434
それは俺だから。別人だってんだろ。混同すんな。
0436デフォルトの名無しさん2015/04/06(月) 02:26:56.45ID:AEDCz7+8
>>433
それが、どうした。ほれ、これで良いのか?

「目的として全メンバの値を0にする」が間違ってる。
ポインタ型はゼロクリアではダメな場合がある事をバカだから知らなかった。
0437デフォルトの名無しさん2015/04/06(月) 14:12:22.14ID:6IkcgflQ
#define NULL 0
char* 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:2RGz3ua8
でも、その p はヌルポインタでないかもしれない‥
0439デフォルトの名無しさん2015/04/06(月) 19:24:56.98ID:AEDCz7+8
>>437
ネタにしてもつまんねーよ。バカ。
#define 0 NULL(大爆笑)クンはあまりのバカさに周りの人間はバカと指摘
するのを遠慮して、今までバカと指摘されたことが無かったのだろう。
チンケなプライド(笑)で必死に食い下がってただけ。

お前が上のやり取り読んだ上でそれをネタでなく書いているなら、論理的
な理解力が致命的に欠如している。
この業界は向いてないから、頭使わない職業に転職する事を勧める。
0440デフォルトの名無しさん2015/04/06(月) 20:04:23.64ID:6IkcgflQ
memset(p, 0, size)でアドレスが0番地になる。
0番地はヌル以外に使い道が無い。
0441デフォルトの名無しさん2015/04/06(月) 20:08:15.70ID:kxLa9VZo
p = 0; や p = NULL; と memset(p, 0, size); が等価なコードになる補償はない
0442デフォルトの名無しさん2015/04/06(月) 20:08:19.48ID:e+Wx+qlz
>>439
いつまでも本筋ではない#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+qlz
途中失礼
memset(p, 0, size)もmemset(p, NULL, size)も同じ
0444デフォルトの名無しさん2015/04/06(月) 20:28:18.07ID:NcW3di0b
NULLなんか元々無かったんだから。NULLっていう特殊な値を作ったら便利だってんで広まっただけなんだからよ。

標準関数でもdefineでNULLを0にしてるのも有れば、(void*)0の関数も有る。
決まった値なんて無いんだから変更して使っても良いんだよ。

だからNULLを0と決めたら、それをNULLとして使って良いんだよ。
0445デフォルトの名無しさん2015/04/06(月) 20:36:06.98ID:vTHIwo8p
お取り込み中失礼しますが別件で質問です。

C++のソースでclassをnewで生成してるのに
メモリをmallocで確保しているのって普通ですか?

そのC++ソースはネットワークアクセス関連なのですが、
C++でmallocって、よく仕様を分かっていない
 → ネットワークアクセス関連の仕様も分かっているんだろうか
…と、そのプログラムの心配になって私は苦しんでます。
0446デフォルトの名無しさん2015/04/06(月) 22:06:12.90ID:TiB43yfl
C++でmalloc使って何が悪いの?
お前の頭の方が心配だ。
0447デフォルトの名無しさん2015/04/06(月) 22:50:07.44ID:6qjJgboN
>>446
おまえはC・C++をやる前に国語をもっと勉強しろ
0448デフォルトの名無しさん2015/04/06(月) 22:50:48.37ID:AEDCz7+8
>>442
見下されるような低能な発言を続けるお前の責任。

> 構造体にmemsetするという前提 >>246-247
前提じゃなく質問だろ。バカすぎる。
Q 初期化はmemsetで良いですか?
A ダメ

> #define NULL 0ならp = 0もp = NULLも同じ
> コンパイル前に展開されNULLが0になる
まだ分かってねーよこのバカ。問題はその先だ。
0449デフォルトの名無しさん2015/04/07(火) 00:11:24.42ID:su68f2vT
>>437
memset(p, 0, size) だと未初期化(不定)の p を渡してることになるからそれはないとして、
memset(&p, 0, sizeof(p)) のつもりなんだよね?

「pの値は0になる」が assert(p == 0) ということなら、それは(みんなの言うとおり)保証されない。

>>440
> 0番地はヌル以外に使い道が無い。

そうじゃない環境での実装も可能なように、規格は作られている。
0450デフォルトの名無しさん2015/04/07(火) 00:16:30.00ID:ogNBYyHd
そんな環境にあなたが書いたプログラムを移植する可能性はゼロ
0451デフォルトの名無しさん2015/04/07(火) 00:42:04.06ID:eLsJnCwY
C言語初心者の為に笑いのツボを解説

C言語では規格上
#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
>>448
無意味な同一人物視と論点ずらしか
構造体にmemsetする場合という前提で質問してるだろ
「ダメ」じゃなく「ダメな場合もある」

>>452
こんだけ連投とかどんだけ必死なんだよ
 NULLが0でdefineしてあった気がした
 →じゃあ同じ
何もおかしくは無い
0454デフォルトの名無しさん2015/04/07(火) 01:05:02.64ID:eLsJnCwY
>>453
何と同じなんだよ。
0455デフォルトの名無しさん2015/04/07(火) 02:06:05.16ID:Z8okfIrg
>NULLが0でdefineしてあった気がした
に対して、それ(#define NULL 0)の状況なら同じって意味だろ。

規格上規格上ってどの規格の事言ってんの。
それこそ質問者の環境の規格が分からんだろ
0456デフォルトの名無しさん2015/04/07(火) 02:16:13.46ID:ogNBYyHd
浮動小数点値ゼロがバイナリ値ゼロじゃないとか
NULLポインタがバイナリ値ゼロじゃないとか
そんな環境は未来永劫現れないということは断言しとくよ
無能ってのは無意味なことに無駄な時間を費やすものだなあ
0457デフォルトの名無しさん2015/04/07(火) 02:48:49.21ID:eLsJnCwY
>>455
何と何が同じなんだよ
0458デフォルトの名無しさん2015/04/07(火) 02:59:58.35ID:iCEcfKSN
>>454
既に上で言われてるだろ
忘れたのなら読み返した方が後々混乱は無いと思うぞ
0459デフォルトの名無しさん2015/04/07(火) 04:50:40.03ID:H200pvkI
VC++でコード化したいけどどんなコード書けばいいのかわかんないです><
言葉でコード化したいこと説明するのでおしえてくださぃ><

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:iCEcfKSN
>>459
Win32API質問箱 Build11 [転載禁止](c)2ch.net
ttp://peace.2ch.net/test/read.cgi/tech/1418181169/
0461デフォルトの名無しさん2015/04/07(火) 08:22:58.44ID:/U9ZAOiy
>>456
+0 と -0 があるんじゃなかった?
0462デフォルトの名無しさん2015/04/07(火) 10:11:07.27ID:ogNBYyHd
>>461
あるよ
バイナリ値ゼロが+0で符号ビットを立てると-0だ
float、doubleのデフォルト初期化は+0だ
0463デフォルトの名無しさん2015/04/07(火) 11:25:27.84ID:PwnlWq+R
>>459
クラックやボットは板違い
0464デフォルトの名無しさん2015/04/07(火) 12:12:19.25ID:zzJeQi4N
ちんぽぷらぷら!
0465デフォルトの名無しさん2015/04/07(火) 12:47:41.50ID:eLsJnCwY
>>458
「そうじゃない」と頭の悪い言い逃れするだろうから、お前からはっきり聞きたい。

> 忘れたのなら読み返した方が後々混乱は無いと思うぞ
↓この発言を忘れてるだろ。もっと頭の悪い言い逃れを垂れ流して、もっともっと笑わせてくれ。

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
>>460
たらい回しにしようとしないでください!!
Win32APIとかゆうのじゃなくてC言語のことがしりたいんです
このスレ初心者歓迎って書いてあるのに・・
わたしはまだ入門書の最初のページ読んで hello worldのしかやってないんです
でも>>459のプログラムだけは早く作らないといけないのでC言語のスレできいています!
>>463
ちがいます、クラックでもボットでもないし
クリック連打がいけないの? それなら連打じゃなくて押したままにするだけでもいいですよ?
C言語の入門書をなくしてしまい皆さんだけが頼りです・・・
>>459のサンプルソースください
0467デフォルトの名無しさん2015/04/07(火) 16:20:09.53ID:F8K01pe/
Cの標準関数だけではできません
0468デフォルトの名無しさん2015/04/07(火) 16:31:22.24ID:iCEcfKSN
>>465
また同一人物視か
もう好きに思っててくれ

>>466
サンプルもWin32API使うからあっちのスレ行って
0469デフォルトの名無しさん2015/04/07(火) 16:58:01.16ID:H200pvkI
>>467-468
Cでできない所はAPI使ってもいいですよ?
Win32APIスレだと何の言語でもいいみたいなので嫌です
Cじゃないと嫌なんです絶対にCがいいです
0470デフォルトの名無しさん2015/04/07(火) 17:46:23.37ID:qdvYFl17
カレーの作り方を英語で知りたいからと
英語スレに質問に来るようなものだ。
0471デフォルトの名無しさん2015/04/07(火) 18:24:14.03ID:Z8okfIrg
>>469
http://nienie.com/~masapico/api_sample_ps05_c.html

win32apiもC言語で書かれてるよ。
apiが嫌なら、apiの関数分解して全部貼っていけば良い。
理解できんと思うけど
0472デフォルトの名無しさん2015/04/07(火) 19:25:03.25ID:PwnlWq+R
向いてない 帰れ
0473デフォルトの名無しさん2015/04/07(火) 19:27:12.73ID:H200pvkI
グダグダ言わず黙って動くソースください。お願いします。
0474デフォルトの名無しさん2015/04/08(水) 10:58:07.49ID:XdCBxPUb
ぐだぐだ言ってんのはてめーだカス
くたばれ
0475デフォルトの名無しさん2015/04/09(木) 16:36:27.51ID:8NRZXusy
>>459
そもそもtestが何をするプログラムなのかも不明だし
よくわかんないけどMyCreateChildAndPipe関数で子プロセスと 匿名パイプつかって
ごにょごにょするんかね?
0476デフォルトの名無しさん2015/04/09(木) 17:13:14.81ID:8NRZXusy
ごめん超適当なこと言ったわwCreatePipe関数な
0477デフォルトの名無しさん2015/04/09(木) 17:18:19.49ID:8NRZXusy
結局プロセス関連は全部osの管理下にあるから
msdnにパイプ関連のリファレンス乗ってるからそれみてくるか
winAPIプログラムのスレにいくべき
0478デフォルトの名無しさん2015/04/09(木) 18:18:19.82ID:UNmeJEgg
プロセスのメモリ監視する必要があるから
デバッガ用apiでも使わなきゃ出来ないんじゃね?
0479デフォルトの名無しさん2015/04/10(金) 16:17:36.83ID:UXaEjvcw
てす
0480デフォルトの名無しさん2015/04/10(金) 16:20:28.26ID:UXaEjvcw
c言語で配列は配列の先頭ポインタの扱いになるわけですが
関数の引数に渡して配列をコピーする場合は
#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
>>480
宜しいです。

ただ、関数に渡されるのがポインタだと知っているのなら、ポインタで受ける方が
分かりやすくてよいでしょう。
その例では、配列の大きさが分かって便利のように見えますが、本当にその大きさの
配列が渡される保証はありません。
0482デフォルトの名無しさん2015/04/10(金) 20:04:57.68ID:UXaEjvcw
>>481
”ポインタで受ける方がわかりやすくて良いでしょう”なのですが、
どのような表記にすればわかりやすくなるでしょうか?
参考までに例を書いていただけると嬉しいです^^
あと、本当にその大きさの配列が渡される保証はありませんのところをもう少し詳しくお願いします
m(_ _)m
0483デフォルトの名無しさん2015/04/10(金) 20:07:13.49ID:UXaEjvcw
ちなみに配列をsizeof(array)/sizeof(array[0])で要素数が取得できることと
別関数で要素数をsizeofでチェックできないので引数で要素数を渡さなければいけない
という知識はあります
0484デフォルトの名無しさん2015/04/10(金) 21:16:50.34ID:AgT+3q87
>>483
それって_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
>>485
なるほど私のはtypedefしてましたが、int*とすれば明示的ですね
ありがとうございます
0487デフォルトの名無しさん2015/04/11(土) 02:22:28.31ID:yiXu9fzw
メンバの型サイズが全てintと同じじゃないと使えないけどな
04884812015/04/11(土) 23:29:09.52ID:37h/xSpQ
>>482
>>どのような表記にすればわかりやすくなるでしょうか?

コード例はまさに >>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
×しかし、>>481 のコードを見ると、
○しかし、>>480 のコードを見ると、
04904802015/04/12(日) 06:24:19.21ID:Z7ZgJ49b
なるほど、自分では理解できているのですが
他人から見たらわかりづらい表記でしたね
次からもう少し気をつけようと思います
0491Office & Gamers ◆G144Hzgh2.0e 2015/04/12(日) 07:16:12.49ID:qV7OJBYF
手遅れかw
0492Office & Gamers ◆G144Hzgh2.0e 2015/04/12(日) 07:18:25.93ID:qV7OJBYF
配列のコピーなんて実際に使う場面あるのか?w
0493Office & Gamers ◆G144Hzgh2.0e 2015/04/12(日) 07:20:05.88ID:qV7OJBYF
宿題臭いなw
それやっても意味ないと思うw
0494デフォルトの名無しさん2015/04/12(日) 11:57:48.74ID:uieaeE3y
>>485

この様な処理ですが…
"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:kx9iDNgY
C/C++って内部動作が分かってる人向けだから、分かってない人があれこれやるとコンパイラが困るコトもあるよなw
0496デフォルトの名無しさん2015/04/12(日) 17:56:43.29ID:y8PA+brm
>>487
よく分からないです。もっとくわしく
0497デフォルトの名無しさん2015/04/12(日) 18:31:04.70ID:Z7ZgJ49b
Office & Gamers ◆G144Hzgh2.0e
お前なに言ってんの?
少なくとも>>480のソースに問題は無いし
配列のコピーだって普通に使うんだが、
ましてや宿題だったら問題なく解決してるんだから確認とかだけだろ普通に考えてw
糞コテ乙
0498デフォルトの名無しさん2015/04/12(日) 18:42:57.60ID:Z7ZgJ49b
>>494
私の勘違いだったら申し訳ないんだが.cじゃなくて.txtでコンパイルしてない?
それだったらエラーがでて当然だと思うのだけど...
0499Office & Gamers ◆G144Hzgh2.0e 2015/04/13(月) 00:34:53.70ID:zG5LWDsu
>>497
>配列のコピーだって普通に使うんだが、

フツーに使わないよw
学校の宿題モロバレw

はい、再履修wwww”
0500デフォルトの名無しさん2015/04/13(月) 00:46:25.96ID:aToeytao
>>499
なんで宿題ならここで書くんだよ
専用のスレがあんだろが
そもそも宿題だろうが宿題じゃなかろうが
お前に関係ない話だろ
まぁ説明させてもらえば
遊びでオセロのプログラムをちょいと書こうと思ってるんだが
そのときにAIに継盤使わせる為に盤面の配列をコピーしてくるっていう考えだったんだけど
まぁお前には関係ないよな
質問の邪魔とかするならとっととどっかいってくれどんだけ暇なんだよニートか?
0501Office & Gamers ◆G144Hzgh2.0e 2015/04/13(月) 00:52:06.59ID:zG5LWDsu
>AIに継盤使わせる為に盤面の配列をコピーしてくるっていう

別にコピーしなくていいじゃんw
0502デフォルトの名無しさん2015/04/13(月) 00:55:34.24ID:aToeytao
じゃあどうやって盤面評価するんだよ
現在の局面と比較しないといけないんだぞ
0503デフォルトの名無しさん2015/04/13(月) 00:56:00.23ID:JkRGi7G6
>>500
本題で反論できないから暇やニートを持ち出すしかないのか?
「実際に使用している構造体かそれに似せた構造体」を使ったコピーの例題で質問しないと意味無くね
メンバ1つなら>>480何してんだそれってなるし
0504デフォルトの名無しさん2015/04/13(月) 00:57:52.76ID:aToeytao
盤面はそのままの状態で
AI用の継盤で数手指させて
比較するんならしょせん[8][8]の多次元配列なんだから
2つ用意して検討させた方がいいだろ?
それとも別のもっと効率のいい方法があるなら
お教えねがえますかね?そしたら採用してやるよw
0505デフォルトの名無しさん2015/04/13(月) 00:59:33.81ID:aToeytao
>>503
あくまで例だから必要最低限の部分しかかかなかったんだよ
悪かったね。
0506Office & Gamers ◆G144Hzgh2.0e 2015/04/13(月) 01:01:55.02ID:zG5LWDsu
>>502
>現在の局面と比較しないといけないんだぞ

おまえが勝手にそう考えてんだろw
0507デフォルトの名無しさん2015/04/13(月) 01:04:59.47ID:aToeytao
Office & Gamers ◆G144Hzgh2.0e
あとさお前、人のこと批判するだけで具体的な案を提示できないんだから
人に不快感与えてるんじゃねえかな?
少なくとも俺は不快だよ
もし必要ないんだったら必要ないなりのソースを数行で良いから示すとかしてくれ
そうじゃなかったら単なるノイズ
0508デフォルトの名無しさん2015/04/13(月) 01:07:06.57ID:aToeytao
>>506
お前がそう考えてるんだろw<そうだよ少なくとも今はそのアイデアで行こうとおもってる

なんかほかに良案があるのか?なら実際に示せ
0509Office & Gamers ◆G144Hzgh2.0e 2015/04/13(月) 01:10:04.34ID:zG5LWDsu
さあ朝まで粘ろうwアハw
0510デフォルトの名無しさん2015/04/13(月) 01:11:41.80ID:aToeytao
>>509
ひとりでシコシコしてろおやすみ(笑
0511Office & Gamers ◆G144Hzgh2.0e 2015/04/13(月) 01:13:50.93ID:zG5LWDsu
お友達に聞けばいいのに…あ、ムリかw
0512Office & Gamers ◆G144Hzgh2.0e 2015/04/13(月) 01:17:14.68ID:zG5LWDsu
>配列のコピーだって普通に使うんだが、

フツーに使わないよw
学校の宿題モロバレw

はい、再履修wwww”
0513デフォルトの名無しさん2015/04/13(月) 01:40:40.53ID:JkRGi7G6
>>510
じゃあとりあえずchar[8]で盤面の表現だな
ビット演算
    x 1 2 3
   y
char[1]
char[2]
char[3]
0514デフォルトの名無しさん2015/04/13(月) 01:42:26.48ID:JkRGi7G6
途中失礼
char[9]にしてchar[0]を捨ててchar[1〜8]を使用するなら上の感じで
0515Office & Gamers ◆G144Hzgh2.0e 2015/04/13(月) 01:43:07.19ID:zG5LWDsu
3値だろwワロタw
0516Office & Gamers ◆G144Hzgh2.0e 2015/04/13(月) 01:44:45.77ID:zG5LWDsu
運営はもうちょっとマシなキャラもってこいよw
0517デフォルトの名無しさん2015/04/13(月) 06:45:40.02ID:JkRGi7G6
具体的な事は言わず批判しかしない奴いるよね
0518Office & Gamers ◆G144Hzgh2.0e 2015/04/13(月) 08:07:22.47ID:zG5LWDsu
オセロが2値で碁盤作れるのかw
0519デフォルトの名無しさん2015/04/13(月) 13:01:43.05ID:mroSQvvT
低能同士の戦いw
0520デフォルトの名無しさん2015/04/13(月) 13:59:54.96ID:I+1IEm0Z
引数で配列の値渡しは余り良くないかな。
0521デフォルトの名無しさん2015/04/13(月) 14:35:47.58ID:Y8nurpVH
配列の値渡し?どんな意味があるの?(´・ω・`)
0522デフォルトの名無しさん2015/04/13(月) 14:40:28.05ID:aToeytao
"ja.wikipedia.org/wiki/オセロにおけるビットボード"
いやなるほどビット演算を使った方がより高速化できるよなそりゃ
普通にint board[8][8]で処理するより効率的だよな

Office & Gamers ◆G144Hzgh2.0eは学校に怨みでもあるのかよwwwwwwwww
0523デフォルトの名無しさん2015/04/13(月) 22:06:03.60ID:mroSQvvT
char [8] でどうやって8x8の3値(白/黒/空)を詰め込むのwww
まだ気づかないとか、さすがに低能過ぎるだろ。
0524デフォルトの名無しさん2015/04/13(月) 22:19:03.19ID:SFia1K29
char [8]

aA0 の3パターンを[0]から[7]
bB0
cC0
dD0
eE0
fF0
0525デフォルトの名無しさん2015/04/13(月) 22:25:21.35ID:9EsgSL1z
8bit x 8要素 = 64bit の空間で 8縦x8横x3状態 の情報を詰めるには
圧縮するしかないが。。。
情報の偏りによらず常に 2/3 に見込める圧縮はあるのかな
0526Office & Gamers ◆G144Hzgh2.0e 2015/04/14(火) 01:13:35.86ID:0kYWajMh
3値マンまだー?w
0527デフォルトの名無しさん2015/04/14(火) 06:31:18.51ID:4FPwD7PA
> とりあえずchar[8]で盤面の表現
> ビット演算
これは明らかに
遊びなら[8][8]なんて使ってるよりビット表現の練習でもしてみたら
という提案だろ

char[2][8]にでもして
[0][y]は置いてるかどうか
[1][y]は色にしたらいいだけの話
0528デフォルトの名無しさん2015/04/14(火) 07:07:24.86ID:2RKS9wsy
charが8ビットっていう固定観念
0529Office & Gamers ◆G144Hzgh2.0e 2015/04/14(火) 12:14:21.04ID:TG3Z0R9j
3値マンは言うコトが違うねぇ〜w”
0530片山博文MZ ◆T6xkBnTXz7B0 2015/04/14(火) 12:17:30.15ID:WdcxbNEq
ルサンチマン?
0531デフォルトの名無しさん2015/04/14(火) 14:47:41.79ID:4FPwD7PA
>>528
8ビット統一以前の古い環境を使う必要性
0532デフォルトの名無しさん2015/04/14(火) 20:43:51.10ID:lp/cDZ7v
Office & Gamers ◆G144Hzgh2.0eは正しいやり方を指摘できずに
人を煽ることしか出来ない低能
0533デフォルトの名無しさん2015/04/14(火) 21:57:34.40ID:4FPwD7PA
>>532 = >>497,507,522
0534デフォルトの名無しさん2015/04/15(水) 00:46:30.88ID:9nQYQHvG
てす
0535デフォルトの名無しさん2015/04/15(水) 00:53:45.97ID:9nQYQHvG
しかし、初心者歓迎とか書いてあるのにこの板は殺伐としてるよなw
0536デフォルトの名無しさん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
>>536
で案の定"【初心者歓迎】C/C++室 Ver.95【環境依存OK】 [転載禁止]©2ch.net "も荒れてるんだがw
私情は別にして何でプログラマって他者に対して攻撃的になるんだろうな
プログラマ板に張り付いてるとしみじみ思うわw
0538デフォルトの名無しさん2015/04/15(水) 01:16:25.40ID:5TWWmEKt
printf("1\n")
cvWaitKey(0)
printf("1\n")
でwaitkeyが無視されて勝手に進むんですが原因教えてください
0539デフォルトの名無しさん2015/04/15(水) 01:19:33.54ID:9nQYQHvG
>>538
おれはよくわからんがとりあえず全体のコード貼らないとそもそもwaitkeyがなにをするのか
よくわからんし
0540デフォルトの名無しさん2015/04/15(水) 01:23:18.33ID:9nQYQHvG
あっ、あんまり長いコードだったらアップローダーに貼れよ
あんまり無駄にレス増やしてもしょうがないし
0541Office & Gamers ◆G144Hzgh2.0e 2015/04/15(水) 01:23:33.77ID:6vmnXgxy
配列コピー、2値オセロwwww、次は何かなwwwwwwwwwwwwwwwwwwwww”
0542デフォルトの名無しさん2015/04/15(水) 01:29:44.76ID:9nQYQHvG
>>541
ちょっとした質問なのだけれど、
cの入門サイトだと配列のコピーの知識を取り上げてるサイトを見かけるけど
必要なかったら取り上げないと思うのだけれどそこのところ実際どうなの?
0543デフォルトの名無しさん2015/04/15(水) 01:33:56.25ID:5TWWmEKt
http://codepad.org/RRxUhZr8
できました。ちゃんと貼れてますでしょうか
ポスタリゼーション(二値化を4段階にわけたもの)を行い、ヒストグラムも表示したいのですが
その処理の前にグレースケールのgray_imgをCloneしたpost_imgが表示できません。灰色の画面が出るだけです。

3時間ぐらい悩んで気づいたのですがコマンドプロンプトをみると1 1と出ているのにcvWaitKey(0)でキー入力を待たずに
直後のNameWindowが出ていて、もう意味がわからずお手上げになってしまった状態です
0544Office & Gamers ◆G144Hzgh2.0e 2015/04/15(水) 01:34:06.31ID:6vmnXgxy
ひねりが足りないなw
0545Office & Gamers ◆G144Hzgh2.0e 2015/04/15(水) 01:36:49.57ID:6vmnXgxy
>>543
とりあえず自分でプログラム書いてみようやw
エラーメッセージにコピペって書いてあるぞw
0546Office & Gamers ◆G144Hzgh2.0e 2015/04/15(水) 01:38:08.70ID:6vmnXgxy
どこの大学か知らないけど…このレベルじゃ再履修確定だなw
0547デフォルトの名無しさん2015/04/15(水) 01:38:48.33ID:9nQYQHvG
おれはopencvに関しては全然詳しくないが、
これだけ貼られても困るというか
もうちょっとコンパクトに質問した方がいんでないの?
0548デフォルトの名無しさん2015/04/15(水) 01:41:30.07ID:5TWWmEKt
コンパクトに質問すると>>538です
0549デフォルトの名無しさん2015/04/15(水) 01:54:21.04ID:5TWWmEKt
誘導先のスレで解決しました。
NamedWindowをcvWaitKeyの後ろではなく手前に持ってくることで解決しました。
0550デフォルトの名無しさん2015/04/15(水) 01:54:37.75ID:9nQYQHvG
おれはopencv詳しくないから見当違いかもしれないけど
ウィンドウを生成する前にcvWaitKey()してない?
なんか所々cvWaitKey()しすぎててエラー起こしそうなんだけど
0551Office & Gamers ◆G144Hzgh2.0e 2015/04/15(水) 02:16:56.11ID:6vmnXgxy
Qtとか(笑)
0552デフォルトの名無しさん2015/04/15(水) 02:19:33.53ID:OBp2TzOF
OpenCV全く知らない当てずっぽうだけど
http://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:OBp2TzOF
ちなみに
http://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:6vmnXgxy
そしていつまでたってもプログラムはできないw
0555デフォルトの名無しさん2015/04/15(水) 02:41:58.06ID:OBp2TzOF
85行目からのcvDestroyWindow();群はcvDestroyAllWindows();に置き換え可能かな
0556デフォルトの名無しさん2015/04/15(水) 02:51:14.63ID:5TWWmEKt
>>555
おお、すごい便利なコマンドですね

argcは恥ずかしながら意味を理解してません...2週間前からはじめたもので
0557Office & Gamers ◆G144Hzgh2.0e 2015/04/15(水) 03:14:16.35ID:6vmnXgxy
今日はOpenCVでキー入力待ちのタイマー値を知らなかったところが味噌かw
0558デフォルトの名無しさん2015/04/15(水) 03:23:44.99ID:OBp2TzOF
>>556
とりあえず、>>543の24行目
int y,x,k,j;
の次の行に
cvInitSystem(argc, argv);
を入れて、25,35行目のcvWaitKey(0);がちゃんとキー待ちするか教えてほしい。
俺の後学のために。
0559デフォルトの名無しさん2015/04/15(水) 21:14:27.91ID:N4qRGHT9
>>558
cvInitSystemを挟みましたが、cvWaitKeyを無視して進みました。
0560デフォルトの名無しさん2015/04/16(木) 01:01:12.32ID:XyyhtFlt
>>559
そうですか。
cvWaitKeyはcvNamedWindowの後じゃないとだめなのか…
0561Office & Gamers ◆G144Hzgh2.0e 2015/04/16(木) 01:05:11.28ID:sQiZAhF+
サンプルをコピー&ペーストするだけじゃプログラム作れないよw
0562Office & Gamers ◆G144Hzgh2.0e 2015/04/17(金) 07:05:56.21ID:dW7xxEmp
配列コピー、2値オセラー、while(1)、冒険心あふれる3値マンwwwwwwwwwwww”
0563デフォルトの名無しさん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:uUydW80K
順子が9と1をまたぐ宇宙麻雀も面白そう
0566デフォルトの名無しさん2015/04/17(金) 19:02:09.08ID:KDCE8l09
>>563
取れる石がないときにどこにおけるかを真っ先にルール化しる
0567デフォルトの名無しさん2015/04/17(金) 19:40:50.57ID:+6nSsPCG
ゴセロか
0568デフォルトの名無しさん2015/04/17(金) 20:34:00.86ID:ui/e4LFK
無限盤面オセロなんかも面白そう
<i+8N, j+8N>を満たす全ての地点に同時に置けるみたいな
0569デフォルトの名無しさん2015/04/17(金) 20:54:35.00ID:uUydW80K
>>566
・盤面は奇数×奇数で、ゲーム開始時は石が無い
・最初に置く人は真ん中にしか置けない
・自分の色ではさめないときは、隣(上下左右)に石のある
 空いたマスならどこにでも置ける(下図AA参照)
   ┼─┼─┼─┼
   │×│○│×│  @ = 元からある石 (自分の石でも良い)
   ┼─┼─┼─┼  ○ = 隣りなので 置ける
   │○│@│○│  × = 斜めなので 置けない
   ┼─┼─┼─┼
   │×│○│×│
   ┼─┼─┼─┼
で いかがでしょう
0570デフォルトの名無しさん2015/04/17(金) 21:30:45.13ID:Tdo+Kd0w
>>562
そういう書き方やめてくれない?
深刻に悩んで質問に来てる人もいるんだよ
憂さ晴らしならほかの板でやってくれ
0571デフォルトの名無しさん2015/04/18(土) 00:03:52.09ID:Fsy3ZZZH
c++だが練習のためにヘッダファイルを作ってみたんだが何故か未解決シンボルのエラーが出る
ためしに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
>>572
正しくリンクできてないってことだよな?
その線疑ってネットから拾った適当なサンプル実行をしてみたら出来たんだよ
それに1つのファイルにまとめたら実行できたってのは関係ないの・・・?
0574デフォルトの名無しさん2015/04/18(土) 00:27:30.53ID:c7orzAZP
/c を使った?
0575デフォルトの名無しさん2015/04/18(土) 00:39:28.70ID:Fsy3ZZZH
>>574
基本eclipseかvisual studio(2013)使ってるからコマンドは疎いから怪しいんだが、
中身だけをネットからのサンプルに書き換えたら実行できるんだ

だから設定周りじゃなくてソースのせいかと思ってる
0576Office & Gamers ◆G144Hzgh2.0e 2015/04/18(土) 00:44:13.12ID:yZFnrc/6
ホワイル・ワン(笑)
0577デフォルトの名無しさん2015/04/18(土) 00:53:25.61ID:AA/Gmt4L
ここまでmainのあるファイル(.cpp) だけコンパイルして
ここまで実装(.cpp)ファイル の部分をリンクしてないだけのような気がするが
0578デフォルトの名無しさん2015/04/18(土) 01:03:38.37ID:HeTG71Jo
vs2013とg++5で警告もエラーも無くコンパイル・実行できました
ソース自体は問題ないと思われます
0579デフォルトの名無しさん2015/04/18(土) 01:06:18.63ID:HeTG71Jo
失礼
分割コンパイル です
0580デフォルトの名無しさん2015/04/18(土) 01:17:34.89ID:Fsy3ZZZH
>>578
ありがとう

じゃあ設定かな
サンプルプログラムは動いたからリンカは生きてると思うんだがなぁ
0581デフォルトの名無しさん2015/04/18(土) 01:26:42.22ID:d+XtVUDX
>>580
空プロジェクトを新規作成して
既存ファイルを追加でやったらいいんでない?
0582デフォルトの名無しさん2015/04/18(土) 01:43:15.85ID:R28h8IPA
>>578

class stack;が定義された.cpp(?)がプロジェクトに追加されていないだけかな
>>577>>581が言うのもそういうことだと思う
0583デフォルトの名無しさん2015/04/18(土) 01:47:26.17ID:Fsy3ZZZH
>>582
そういうことだったのか
だが既存を追加でも一緒だわ

何よりプロジェクト自体はそのままに、
ソースコードの中身だけをサンプルに書き換えたら動くんだ
0584デフォルトの名無しさん2015/04/18(土) 07:30:30.73ID:d+XtVUDX
>>583
VC++ 2010 Express Editionで試してみたけどビルド通ったよ

手順としては
空のプロジェクト新規作成
→予め作成しておいたSTACK・STACK.cpp・main.cppを既存のファイル追加でプロジェクトに追加
→ビルド
で特に設定弄ったりはせずデフォルトのまま
0585デフォルトの名無しさん2015/04/18(土) 10:42:56.19ID:Fsy3ZZZH
>>584
実行できた?
kokoroって出ると思うんだが
0586デフォルトの名無しさん2015/04/18(土) 11:43:46.05ID:rDjGqZMx
変数名の接尾辞に下線を
付けるのはどういう意味ですか?
0587デフォルトの名無しさん2015/04/18(土) 12:33:15.79ID:mIKxN8Vw
>>586
「ボクはバカです」
0588デフォルトの名無しさん2015/04/18(土) 16:02:44.03ID:LIzajD41
namespace stack が見えないんじゃないの
0589デフォルトの名無しさん2015/04/18(土) 16:05:03.03ID:LIzajD41
ごめんソース見ないで適当書いた
0590デフォルトの名無しさん2015/04/18(土) 16:53:43.72ID:d+XtVUDX
>>585
できたよ
ttp://i.imgur.com/46Cw6hR.jpg
0591デフォルトの名無しさん2015/04/18(土) 17:46:15.01ID:R28h8IPA
>>571
まさかと思うけど、ヘッダファイルが拡張子なしの STACK だから何かおかしくなってるのでは
0592デフォルトの名無しさん2015/04/18(土) 18:19:31.64ID:rDjGqZMx
>>586
真面目にお答えいただけないでしょうか?
0593デフォルトの名無しさん2015/04/18(土) 21:10:38.42ID:a6bu9/Il
>>586
メンバ変数ってことじゃね?
0594デフォルトの名無しさん2015/04/18(土) 21:19:23.76ID:/l4K2B19
>>590
おおおお
ってことはやっぱなんか設定というか環境が間違ってんのか
それが分かっただけでもありがたいわ

>>591
.hつけてみたがダメだったわ
0595デフォルトの名無しさん2015/04/18(土) 21:32:27.50ID:rDjGqZMx
>>593
あっ、名前かぶり防止ですかローカル変数との名前のぶつか
リはスコープ演算子でなんとかなりますが、メンバー関数名とメンバー変数
が名前がぶつかったときは名前を変えない
と防げないからですか
0596デフォルトの名無しさん2015/04/18(土) 22:58:04.95ID:R28h8IPA
>>594
makefile出力して、codepadに貼り付けてみたら
0597デフォルトの名無しさん2015/04/18(土) 23:25:45.47ID:d+XtVUDX
>>594
フィルターのリソースにソースが入ってるけど気にしないで
今見直して気付いたw
0598デフォルトの名無しさん2015/04/18(土) 23:50:37.30ID:R28h8IPA
>>590
俺も実行できたのを貼っとこう。
Linuxのeclipseで
http://i.imgur.com/yFl42dy.png
0599デフォルトの名無しさん2015/04/20(月) 12:11:41.79ID:2zZykn4x
初心者の練習スレかよ
0600デフォルトの名無しさん2015/04/20(月) 15:30:55.77ID:WV2Mpxpu
初心者歓迎スレですよ
自分でベテラン限定スレ立てれば?
0601デフォルトの名無しさん2015/04/21(火) 00:17:03.91ID:UJ2UkLE+
>>595
まあ防げんこともないけどな
thisとか使えば
0602デフォルトの名無しさん2015/04/21(火) 00:26:54.67ID:Dafs32Hw
関数名と変数名が被るなんてどんな名前なのか気になる
0603デフォルトの名無しさん2015/04/21(火) 01:18:44.91ID:aTU/XB0V
俺は、変数はスネークケース、関数はパスカルケースにしてるな
これで問題が起こったことはない
0604デフォルトの名無しさん2015/04/21(火) 09:47:27.79ID:4Ab23aFH
>>603
すべて小文字でアンダースコアのチェインにならない(+ 6文字以下?) を満たすと
標準関数と名前がぶつかるかもしれない?ぐらい?

あやしげなのは1単語の変数名か
0605デフォルトの名無しさん2015/04/21(火) 12:32:09.80ID:ohVI9ioQ
countとか
0606デフォルトの名無しさん2015/04/26(日) 21:59:11.16ID:eg/btpQm
VS2012で
void 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:QwoO9IPF
delete してないんだから当たりまえ
0608デフォルトの名無しさん2015/04/27(月) 01:11:22.53ID:GwSXEb5h
何をdeleteするってw
>>606
それはVS2012のバグ
https://connect.microsoft.com/VisualStudio/feedback/details/773429/memory-leak-for-std-thread
0609デフォルトの名無しさん2015/04/27(月) 05:34:31.61ID:dxxvEIaE
>>608
だからdeleteしてないんだろ
0610デフォルトの名無しさん2015/04/27(月) 08:10:48.50ID:OQJgrPlS
new していないのに delete しないといけないの?
0611デフォルトの名無しさん2015/04/27(月) 15:57:37.47ID:GeaiLZXg
優先度付きキュー使いたくて
priority_queue<event, vector<event>, greater<event> > hoge
と書いたらgreaterはテンプレートではありませんって怒られるんだけど
0612デフォルトの名無しさん2015/04/27(月) 17:46:26.38ID:45R52P+0
<functional>をインクルードしてないとか?
0613デフォルトの名無しさん2015/04/27(月) 17:47:02.75ID:45R52P+0
あ、違う、クラスeventに < がオーバーロードされてないんだろ
0614デフォルトの名無しさん2015/04/27(月) 18:44:46.10ID:GeaiLZXg
>>613
比較のオーバーロードはしてた
けど<functional>をインクルードしたらできた
ありがとう
0615デフォルトの名無しさん2015/04/29(水) 13:50:01.54ID:Bg6ZLegt
>>608
バグを放置して、新しいのを購入しろか・・・
0616デフォルトの名無しさん2015/04/29(水) 14:24:50.76ID:No5D67KY
この動作は保障されてる?

Base::Base(procSubClass)
{
// 登録と変数へ保存
}
Sample::Sample() : Base(this->関数名)
{
}
0617デフォルトの名無しさん2015/04/29(水) 14:25:57.46ID:No5D67KY
途中失礼
実行するのではなくSetWindowSubclassで登録とメンバ変数へ保存する目的
0618デフォルトの名無しさん2015/04/29(水) 14:29:52.29ID:jGX7gUOM
呼び出す関数による
0619デフォルトの名無しさん2015/04/29(水) 14:44:29.38ID:EXa808Ie
コンストラクタで Sample が完成する前で
Base コンストラクタを起こしてるときの引数で this 使用

class の static メンバ/関数 でないかぎり無理っぽくない?
0620デフォルトの名無しさん2015/04/29(水) 14:53:29.59ID:0GRJwfE7
http://static1.allkpop.com/upload/content/FinKL_1371652918_park-jin-young-half-plastic-pants1.jpg
0621デフォルトの名無しさん2015/04/29(水) 18:31:27.08ID:No5D67KY
>>618
Baseコンストラクタ->Sampleコンストラクタの流れが完了するまでび間に登録する関数が何をしてるかって事かな

>>619
サブクラスプロシージャなのでstatic
という事はTimerProcやThreadProcもstaticだから問題無いって事でいいのかな
06226182015/04/29(水) 22:02:14.07ID:pVJkQfS9
>>621
すまんが嘘を言った
生成破棄中は純粋仮想関数の「呼び出し」だけが禁止されている
それ以外は何をしても問題ない
0623デフォルトの名無しさん2015/04/30(木) 08:54:27.57ID:bghsO/1y
生成破棄中じゃなければいいのかありがとう!
0624デフォルトの名無しさん2015/04/30(木) 15:58:42.41ID:bghsO/1y
>>616で
Sample::Sample() : Base(this->関数名)
Sample::Sample() : Base(Sample::関数名)
この置き換えも保障されてる?
複数のSampleクラスがnewされてる場合関数アドレスは常に等しい?
0625デフォルトの名無しさん2015/04/30(木) 20:21:49.23ID:+7zpztn5
delete this;ってなんですか?

#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+oj3HD
合法
0627デフォルトの名無しさん2015/04/30(木) 20:29:37.52ID:sP3PJt9m
>>625
お前が死ね
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:ioxLfyOW
delete this なんて必要なのか?
0631デフォルトの名無しさん2015/04/30(木) 22:30:09.31ID:7r+oj3HD
>>630
component object modelの参照カウントでよく使われてるよ
0632デフォルトの名無しさん2015/05/01(金) 17:11:23.26ID:hJyFoXEx
シングルトンパターンで使う
0633デフォルトの名無しさん2015/05/02(土) 02:19:56.79ID:l2Olm8jB
ttp://blog.goo.ne.jp/mappimk2/e/7d4be33a321f4a2d78700d3b48b7e3c7

このサイトを参考にアルドゥイーノからpcへ送信されたバイナリデータを受信するプログラムを作成したいのですが、助言頂けないでしょうか

pc側ソフトはvisualstudio2010を使用しており
arduino側プログラムは上記のサイトのサンプルをそのまま使用します。

サンプルプログラムなどありましたらよろしくお願いします
0634デフォルトの名無しさん2015/05/02(土) 16:12:04.56ID:wQLon+fD
なにについて助言するの?

全部作ってっていう丸投げ?
06356332015/05/03(日) 11:34:08.56ID:68iNX4m7
ttp://www.dotup.org/uploda/www.dotup.org295182.c

サンプルをつぎはぎして自分で書いたプログラムがこちらで,このプログラムで受信しますと
確かに値は出るのですが文字化けして動かないのです・・・
0636デフォルトの名無しさん2015/05/03(日) 12:23:42.04ID:p3er52Mk
>>635
目的の結果と現状の結果がどうなるのかは?
0637デフォルトの名無しさん2015/05/03(日) 19:13:18.41ID:DGVNwvpl
C++を4月からやってるんですけど、C++ってどんなものでも作成できるって聞いたんですが
真っ黒の画面にコマンド打って、足し算とかして結果を文字で出すだけの、必要か?って思うような
ものばっかでつまらない。
3DCADみたいなソフトはつくれないの?
0638デフォルトの名無しさん2015/05/03(日) 19:47:48.28ID:fqhnuaMP
>>637
そういうのはウィンドウシステムに深く関わらないとどうしようもない
いろいろ寄り道しながら10年くらいかかって到達するようなもの

根気よく頑張ってくれ、俺はもう脱落した‥

エールを贈る
http://japanese.joelonsoftware.com/Articles/FireAndMotion.html
「射撃しつつ前進」
0639デフォルトの名無しさん2015/05/03(日) 22:40:43.65ID:21DBucM7
>>637
>3DCADみたいなソフトはつくれないの?
作れる奴らは作れる。お前は自分で作れると思う?
0640デフォルトの名無しさん2015/05/03(日) 22:50:22.01ID:DGVNwvpl
>>639
あんた、バカァ
作れるかを質問してんのは俺だろうがw
0641片山博文MZ ◆T6xkBnTXz7B0 2015/05/03(日) 22:53:30.09ID:EPJ3sWKW
>>637
それを実現するためのソフトウェア部品を考えるとよい。
ボタンやメニューといった操作対象の「GUI」と、3Dオブジェクト表示の
ための「グラフィックライブラリ」と、データをファイルに保存するための
「ファイル入出力」。
0642デフォルトの名無しさん2015/05/03(日) 23:13:24.96ID:21DBucM7
>>640
作れる奴らは作れる
って言っているだろ。
0643デフォルトの名無しさん2015/05/03(日) 23:15:23.15ID:EPJ3sWKW
そのような言及をトートロジーと呼ぶ
0644デフォルトの名無しさん2015/05/03(日) 23:15:26.92ID:DGVNwvpl
あんた、バカァ
0645デフォルトの名無しさん2015/05/03(日) 23:25:28.74ID:21DBucM7
>>643
作れるかどうかって、作る奴の能力しだいだからな
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:EPJ3sWKW
ヤフー
http://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++」と入力します。
その右の検索ボタンをクリックします。
0650 ◆QZaw55cn4c 2015/05/03(日) 23:49:41.48ID:fqhnuaMP
片山よ‥お前の芸はひとつも面白くないぞ‥
0651片山博文MZ ◆T6xkBnTXz7B0 2015/05/04(月) 00:04:42.28ID:2JhR5SXh
Windows 3.1や初期のWindows 95では、そのままではインターネットができないかもしれません。
そのときは
「Windows 3.1 インターネット接続」
「Windows 95 インターネット接続」
などで検索するとよいでしょう。
0652デフォルトの名無しさん2015/05/04(月) 00:22:43.15ID:gp8xoWMo
>>637
例えばFreeCAD
無限の可能性の貴方ならどんなものでも作られるさね
0653デフォルトの名無しさん2015/05/04(月) 00:52:46.37ID:89QT3Y97
タッチパネル全盛のこのご時勢に、キーボードからコマンドを入力させるようなプログラムに需要があるとは思えん。
06546332015/05/04(月) 15:02:02.40ID:zvBV+wQl
>>636
ttp://www.dotup.org/uploda/www.dotup.org297194.png
0~255の値を受け取りそれを画面に0〜255で表示させたいのですが、
現状左の図のように文字化けしてしまいます・・・

右の図のように他のターミナルで表示するとデータが受信できていることはわかるのですが・・・
0655デフォルトの名無しさん2015/05/04(月) 15:37:35.83ID:UkhECCZE
休日の暇つぶしに、1万/日 x 日数+開発環境調達費で、作ってやろうか?
0656デフォルトの名無しさん2015/05/04(月) 15:47:41.73ID:89QT3Y97
1万/日って安いな
外注だと安くても4000円/時間だし
0657デフォルトの名無しさん2015/05/04(月) 15:52:00.60ID:UkhECCZE
格安だろ。特別出精値引きだよ。
0658デフォルトの名無しさん2015/05/04(月) 16:19:06.03ID:aCbhfK4O
>>654
コマンドプロンプト結果なら0xBB以降の二重罫線じゃないの
ttp://www.cdrummond.qc.ca/cegep/informat/Professeurs/Alain/files/ascii.htm
どこのprintf出力かしらんけどこうゆうのはバイナリエディタと同じで%xデータ値と併記したほうがいいんでないの
0659デフォルトの名無しさん2015/05/04(月) 16:20:12.43ID:LYeSXt0A
>>654
その左側の表示は>>635の何行目?
0660デフォルトの名無しさん2015/05/04(月) 21:53:07.38ID:SA9HCJPH
>>654
それバイナリの0x00-0xFFを文字列の0-255に変換していないから化けているんじゃないのか?
0661デフォルトの名無しさん2015/05/04(月) 21:58:56.36ID:SA9HCJPH
まず、受信データをファイルにセーブできるようにして受信データが正しいかの
確認をまずしたほうがいいのかも知れないが
0662デフォルトの名無しさん2015/05/05(火) 07:45:34.09ID:8cP4yYWI
isprint(c) で printable なのだけ %c それ以外は %02x でログとる
0663デフォルトの名無しさん2015/05/05(火) 08:19:30.57ID:JPFk61nl
ログのとりかたがわからん
0664デフォルトの名無しさん2015/05/05(火) 10:16:46.86ID:wynKG7+B
>>663
俺は使ったことないけどboost logがログのとりのスタンダードらしいよ
0665 ◆QZaw55cn4c 2015/05/05(火) 11:52:34.38ID:L//ecjsr
>>635
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+00I
STLについて聞きたいんですが
std::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:Egu5pcNy
>>666 コンパイラに聞け
0668デフォルトの名無しさん2015/05/09(土) 23:21:04.80ID:4IoY+00I
レス側は偉そうなのは相変わらずですねwww
0669デフォルトの名無しさん2015/05/09(土) 23:24:11.63ID:A4J0+lB1
>>666
どういう視点でのあり/なしを知りたい?

文法的には、
・begin()とend()で変数が違う
・bとfが重複
・hの後にカンマがついてる
とかの、おかしいところがあるけれど
0670デフォルトの名無しさん2015/05/09(土) 23:31:45.47ID:4IoY+00I
>>669
申し訳ない、タイプミスです。
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:rG34pIsW
>>670
range-based-forが使えるなら、
for(auto& fo : v)
{
// 数十行の処理
}
としたほうが、長ったらしいキャプチャを書かずにすむから、素直かもね

でも、range-based-forが使えない環境で、「コンテナの汎用的なループにはfor_eachを一貫して使うべし」という信条があるなら、
そのコードも別にありだと思うよ
普通のfor文にしたところで、可読性はたいして変わらんだろうし

いずれにせよ、ループ外の変数減らせるように、リファクタした方がよさげ
0673デフォルトの名無しさん2015/06/07(日) 01:12:48.06ID:3H81Y72n
環境VC++2010express
コンソールで
標準C++を一通り勉強しました

数値を線グラフ化したいのですが
次は
どっち方面へ向かえば良いですか?
0674デフォルトの名無しさん2015/06/07(日) 01:20:35.66ID:YXU65cq+
gnuplot
0675デフォルトの名無しさん2015/06/07(日) 01:22:43.04ID:hr3tQ2QJ
おいQZ、VSネタでマルチ自演かよ
ほんとなんでもありだなお前のバレバレ自演
0676デフォルトの名無しさん2015/06/07(日) 15:39:22.50ID:JLEDROYj
>>674
どうもありがとう
C++の学習必要無かったみたいね
0677デフォルトの名無しさん2015/06/09(火) 00:17:35.11ID:xfiXeUeQ
QZには得ても無駄知識
0678デフォルトの名無しさん2015/06/11(木) 17:27:47.96ID:iGKX+Re5
>>673
boost graph
0679デフォルトの名無しさん2015/06/11(木) 23:44:32.66ID:phbL6DGJ
// main.cpp
#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:Qvm3BcbJ
>>679
TestClass.libをリンクしないようにしてみ
06816792015/06/12(金) 11:02:05.16ID:ZzMiSOW4
>>680
ごめん、どうやってリンクしないようにするの?
0682デフォルトの名無しさん2015/06/12(金) 12:53:38.36ID:Qvm3BcbJ
>>681
開発環境しらんし!!1
06836792015/06/12(金) 14:41:31.65ID:ZzMiSOW4
visual studio !!!!
0684デフォルトの名無しさん2015/06/12(金) 14:49:44.71ID:bMq/lwLt
libじゃないだろ
初心者ならまずはプロジェクトにソースを登録するか makefileに記述するだろ
0685デフォルトの名無しさん2015/06/13(土) 01:17:13.02ID:05Jv17Sn
>>683
VSならTestClass.cppを右クリックしてプロジェクトから除外ってみ
06866762015/06/15(月) 11:54:10.58ID:mHyo0Y7D
プロジェクトから除外してみたら読み込まなかったんだが
TestClass.cppは開発環境が自動で読み込んでくれているだけで
本来は読み込まないものって解釈でよいの?
06876792015/06/15(月) 11:54:58.67ID:mHyo0Y7D
ミスった679ね
06886792015/06/15(月) 18:41:36.58ID:mHyo0Y7D
スルーするなよ(´・ω・`)

プロジェクトから除外してみたら読み込まなかったんだが
TestClass.cppは開発環境が自動で読み込んでくれているだけで
本来は読み込まないものなの?
0689片山博文MZ ◆T6xkBnTXz7B0 2015/06/15(月) 18:49:11.84ID:hozTrjkJ
開発環境がコンパイラーにソースファイルを渡してコンパイル&ビルドさせている
0690デフォルトの名無しさん2015/06/15(月) 18:53:42.73ID:G/zt5tY/
>mainでTestClassを生成した場合
>main.cppがTestClass.hを認識出来るのは分かるけど
>TestClass.cppはどうやって認識しているの?

「mainでTestClassを生成した場合」 とか
「ソースファイル(main.cpp) が ヘッダーファイル (TestClass.h) を認識」 とか
質問が日本語になってないんだもん エスパーして答えるしかねーよ
0691デフォルトの名無しさん2015/06/15(月) 20:40:55.08ID:H6WfKB6i
>>690
知識ないのに自慢するなよQZ
お前は入門書を読み漁って章末問題で一人で回答していい気になってろ
ここにくるなゴミ
06926792015/06/16(火) 00:53:08.41ID:TEY6OSiS
あんがと
長年の謎が解けたよ
0693デフォルトの名無しさん2015/06/16(火) 20:07:00.44ID:7c92TlFO
QZ長年無職の縛りが解けず
0694デフォルトの名無しさん2015/06/23(火) 16:46:23.25ID:UWY4UI5S
教えてちょ

http://www.pso2-uploader.info/uploda/src/up160546.png
0695デフォルトの名無しさん2015/06/23(火) 17:27:36.12ID:UWY4UI5S
>>694
取り下げます
0696デフォルトの名無しさん2015/06/24(水) 13:02:46.77ID:aZuAsVj7
>>694
色んな意味でひでぇ問題だな。
0697デフォルトの名無しさん2015/06/28(日) 03:16:39.30ID:4PA/u/+9
今時、文字を配列で持つなんてありえないだろ
0698デフォルトの名無しさん2015/06/28(日) 08:16:49.91ID:q4v0PqzP
本題はそこじゃないだろ
0699デフォルトの名無しさん2015/06/29(月) 12:18:24.10ID:/OhQj6sy
発見したら終わりなのか?それとも何個あるか出力するのか?
0700デフォルトの名無しさん2015/07/01(水) 00:50:56.19ID:43NAfoSR
無職QZが投稿した糞オナニー質問

357 名前:オナネタ(そんなに難しくはない)[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
>701
実行時の話だよな。
一般的には関数内の自動変数領域は関数に入るときに作られ、関数から抜けるときに解放される。
これをスタックフレームと言う。
確保も解放もスタックポインタを移動するだけだ。
自動変数に名前テーブルも再利用可能の印も要らない。
疑問の前提が間違っている。

>{
> {
>  int i = 5;
> }
> i = 0; // エラー.iはもう存在しない
>}

これはコンパイルエラーであって、君の疑問とは全く関係が無い。
「iはもう存在しない」のではなく最初からこのスコープに無い。
0703デフォルトの名無しさん2015/07/12(日) 12:49:46.02ID:svivBg18
>>701
言語仕様から確実に言える事は、
「完全に消滅している」
ってところまでかな。

名前云々は完全に処理系依存の話なので何とも。
しかも、コンパイル時の話なので、コンパイラの作成に興味があるのでも無ければ、気にしても意味の無い話しだと思うよ。
0704デフォルトの名無しさん2015/07/12(日) 12:51:53.50ID:kKzgWvVT
Qの自演スレに投下された自演質問に反応しないでください
0705デフォルトの名無しさん2015/07/12(日) 14:32:34.21ID:cli6Wler
そうだった、スタックだから単純にカレントインデックス動かすだけで処理するんだった……
ありがとうございました。

ということは、やっぱりループでのみ使う変数の定義は、ループ内に入れるべきなのかな。
コンパイラ依存でないコード(初めからループの外に定義を追い出す)と、コンパイラの最適化に頼ったコードの比較をしていて気になってました。
0706デフォルトの名無しさん2015/07/12(日) 15:22:43.20ID:ijGXRf9p
>>705
最小限だけ書くけどこの場合速度が落ちるから外部でint i;した方がいい場面もある

for()
 for(int i;;)
0707デフォルトの名無しさん2015/07/13(月) 08:15:48.47ID:N83JEIha
ねーよ。
0708デフォルトの名無しさん2015/07/13(月) 08:45:00.37ID:SsIQOJjZ
あーるよ。
0709デフォルトの名無しさん2015/07/13(月) 09:15:08.88ID:akoFSls4
初心者に変な癖付けさせるだけで害悪以外の何物でもないな
0710デフォルトの名無しさん2015/07/13(月) 12:51:05.93ID:8hvPNaF1
仮に、ブロック突入時に律儀にスタックフレームを形成するようなコンパイラがあるとすれば、整数変数をブロック外で定義した方がコストが下がる可能性はあるね。
処が、普通は関数突入時にスタックフレームを形成するので、件の整数変数をどこで定義しようとその為にコストが変わることはないよ。
それどころか、ブロック内で定義した方が生存期間の判定が楽になるから、レジスタに割り付けられる可能性が却って増すってもんだ。
0711デフォルトの名無しさん2015/07/13(月) 13:48:29.67ID:SsIQOJjZ
>>710
いつの時代の方ですか?

まあ速度差が出ても>>709に完全に同意だが
0712デフォルトの名無しさん2015/07/13(月) 21:44:51.87ID:92henfdO
だから速度差なんてないってば。
0713デフォルトの名無しさん2015/07/13(月) 22:30:31.47ID:SsIQOJjZ
確かに単純にint i;だけなら速度差は出ないけど、
int i = /* */;みたいに代入の式が伴って外に出ると速度差が出る場合があるんだよね。
意味的に違ってくる場合があるから当然だけど。
0714デフォルトの名無しさん2015/07/13(月) 23:10:35.47ID:cxTds9wU
> 最小限だけ書くけど
ってのを無視してる人が多いのが謎
0715デフォルトの名無しさん2015/07/13(月) 23:22:02.96ID:3owfcYR4
意味が違うものを比較してどうする
0716デフォルトの名無しさん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
>>717
お前自身の主張がなんなのかまったく解らんのだが、ただ他人をバカにしたいだけ?
0719デフォルトの名無しさん2015/07/14(火) 08:20:25.22ID:i/2DLIti
>>717
その>>706が、本文に合ってるコードになってないって事だろ
0720 ◆QZaw55cn4c 2015/07/14(火) 20:23:44.35ID:rHdKCkr+
>>701 >>705 は,カウンタとして使う変数に限ってはいない,とおもうよ‥
0721デフォルトの名無しさん2015/07/14(火) 22:37:36.28ID:rB0J2LcB
QZ怒りの鳥つけ自演
0722デフォルトの名無しさん2015/10/13(火) 15:25:40.08ID:GMeIq+4u
本スレhttp://peace.2ch.net/test/read.cgi/tech/1439849418/
0723停止しました。。。NGNG
真・スレッドストッパー。。。( ̄ー ̄)ニヤリッ
■ このスレッドは過去ログ倉庫に格納されています