[過去ログ] 【初心者歓迎】C/C++室 Ver.106【環境依存OK】 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
395: 2020/11/10(火)15:50 ID:zbbW2u8o(1) AAS
quickならいいのに
396: 2020/11/10(火)17:03 ID:WZfCMWiE(1) AAS
どうしても高速化が必要なら、あらかじめ値域を限定して情報量減らすなりしかないよな。
線形補間で必要精度が達成できる最小限のテーブル実装…て数学か。
397: 2020/11/10(火)21:54 ID:HXXQLae8(1) AAS
後で高額請求されそう
398: 2020/11/11(水)01:13 ID:410+hQkP(1) AAS
普通にquadのqやね
399: 2020/11/11(水)09:57 ID:tAzuyT8U(1) AAS
floatもdoubleも使わずに
atan2iみたいなの造れば速いかな
400: 2020/11/11(水)10:34 ID:w2fotzxY(1) AAS
作って計測せよ
401: 2020/11/11(水)10:49 ID:RBRHVwv/(1) AAS
qiitaで聴かれてもいないのに発表ですね判ります
402: 2020/11/13(金)07:12 ID:0Q6l6RCm(1) AAS
このソースとか目がつぶれそうなんだがw
外部リンク[c]:github.com
403: 2020/12/03(木)01:52 ID:3onLW5ry(1/3) AAS
外部リンク[html]:linuxjm.osdn.jp
iconv()関数は…回る仕様なの?つまり…十分なバッファーを取っていても…回っちゃうか?って事…。
回って徐々に変換していくのか…1回で変換するのか…いまいち仕様が…把握できない…。
404: 2020/12/03(木)02:49 ID:3onLW5ry(2/3) AAS
readで回すケースがあるのか?…僕は…C++なので…std::ifstreamのgetlineで一行づつやるので…
う”ーん…1回でいいんだけど…これ…どうなんでしょうねぇ…。
405: 2020/12/03(木)23:10 ID:re3CBOUT(1) AAS
改行扱いたくないんだろ
関数レベルで
406: 2020/12/03(木)23:48 ID:3onLW5ry(3/3) AAS
結局…1行分のバッファをINとOUT両方取って…回しました…SJIS→UTF-8だとOUTのバッファが足りなくなるので…
回したら…いい感じにできた…。余分にバッファ取らなくてもいい…これがいいね…。
407: 2020/12/04(金)23:59 ID:4kKR6ux4(1) AAS
文字列終端の'/0'…ヌル文字…改行コードの\rや\nや\r\nって…文字コードによって…バイト数って変わってくるの?
変わるんだったら…非常に面倒なんだけど…。特に…'/0'は…長さを測れない…。誰か…。
408: 2020/12/05(土)00:16 ID:7NPUSOnt(1) AAS
もうちょっと普通にしゃべれないのか?
409: 2020/12/05(土)00:26 ID:WkfwE68o(1/7) AAS
'\0'用に配列のBUFFERは多めに取るか…\rや\nや\r\nは…findで切ろう…。面倒だ…。
410: 2020/12/05(土)01:00 ID:wvE+eMYt(1) AAS
よしなにやってくれるライブラリあるやろ(適当)
411: 2020/12/05(土)01:18 ID:WkfwE68o(2/7) AAS
改行コードは簡単だけど…char配列の最後の'\0'意外に理解に苦しむ…。
2バイトになるケースがあるのかと…。
412: 2020/12/05(土)01:52 ID:WkfwE68o(3/7) AAS
外部リンク[html]:proger.blog10.fc2.com
↑だそうだ…UTF-32まで想定して…'\0\0\0\0'にでもしておこうかなぁ…。かなり…馬鹿げてるけど…。
413: 2020/12/05(土)02:01 ID:WkfwE68o(4/7) AAS
かなりショックだね…これじゃ…辛い…UTF-16のLinuxの場合に問題が出てくるのか…。
UTF-8端末であれば…'\0'で問題ないだろうね…。UTF-16のLinuxってある?
414: 2020/12/05(土)02:02 ID:JCVQKVIe(1) AAS
文字列使え
415: 2020/12/05(土)02:08 ID:WkfwE68o(5/7) AAS
この話の流れだと…UTF-16のLinuxはぶっ壊れるよね…。
416: 2020/12/05(土)02:16 ID:Opj7igsw(1) AAS
僕は…C++なので…文字列は使いたくないだろうね…。
417: 2020/12/05(土)02:35 ID:I2yh8xfr(1) AAS
文字処理なんか相当面倒&複雑な割に得られるメリットが少ないので手を出すこと自体が間違い
外部ライブラリに頼るべき典型例
418: 2020/12/05(土)05:47 ID:WkfwE68o(6/7) AAS
悲惨だ…文字「A」…UTF-16で文字コード「0x0041」を…iconvすると…EINVAL…これもナル文字の影響なのか…。
ちょっと…今日は…ショックを隠しきれない…C++に挑戦してるが…引退が頭をかすめる…。
とりあえず…海外のStackOverFlowで聞いてみようか…。
419: 2020/12/05(土)06:21 ID:WkfwE68o(7/7) AAS
ライブラリのバージョンが違うのかもしれないiconvctlで制御できそう…。
今使ってるのは…iconvctlがない…。明日は…そのあたりの環境構築から…。
420: 2020/12/05(土)07:23 ID:f0cq7ZxN(1/3) AAS
そこら辺はRubyのほうが使いやすいだろうな。
421: 2020/12/05(土)11:41 ID:7yX6qRkD(1) AAS
char使えるのはマルチバイト文字だけだぞ
UTF-16や32使うならwchar_tかchat16_tとかchar32_t使え
422: 2020/12/05(土)11:47 ID:f0cq7ZxN(2/3) AAS
WHATWG、Encoding仕様は、注意深く実装すればプッシュ型に出来るぞ。
プッシュ型の設計は、柔軟な利用法を可能とする。
弱点は、キャッシュに乗りにくく関数呼び出しが増え、実行効率が落ちること。
とはいえ、そろそろプッシュ型の時代が来ても良いのではないか?と思う。
なぜなら、Enter押した瞬間に実行が終わるから。
423: 2020/12/05(土)11:47 ID:pZ+vMW1v(1/2) AAS
独り言やめてください

・このコードをコンパイル実行し(ようとし)ました
・結果こうなることを期待していました
・実際にはこうなりました

こんな感じでお願いします
424: 2020/12/05(土)11:56 ID:f0cq7ZxN(3/3) AAS
Enter押した瞬間に実行が終わるとはどういうことかわかるか?

ときどき、あれ?いま押す前に結果が表示されたよな??と思うときがあるって事ですよ。

そのくらい速いって事ですよ。
最近のパソコンは。
425: 2020/12/05(土)14:00 ID:3OUqO/Qz(1) AAS
近頃のRuby on Rails の未経験者なんて、10年やってるプログラマーよりも、レベルが高いぞ。
ポートフォリオに学校で作った、Twitter・メルカリクローンとか

AWS, Linux, Docker, Rails, CircleCI, Terraform, Chef, Itamae とか
426: 2020/12/05(土)14:45 ID:pZ+vMW1v(2/2) AAS
何の話ですか?
427: 2020/12/06(日)11:49 ID:XVsVhGnz(1) AAS
C++の入門書を一通り終わらせました。
次にCUDAでのGPU処理を勉強しようと思います。
試しに行列演算するclassを作ったのですが
classのoperatorをCUDAで処理って出来ないのですか?
428: 2020/12/06(日)13:45 ID:htfQpy13(1) AAS
できないことないでしょ。
でも必要になるまで結果を取得しないfutureみたいなオブジェクトを返却するほうが良さげな気がする
429
(3): 2020/12/12(土)00:35 ID:cOibJfw/(1/5) AAS
C++何も分からないので教えてください。
コンパイルすら1度もしたことがないレベルの初心者です。
他言語の経験は多少あります。

外部リンク[cpp]:github.com
上記のURLのFAppleARKitLiveLinkRemotePublisher::PublishBlendShapesという関数(?)で
以下のようなコードがあるのですが、これは変数の中に変数を加算(?)しているような処理に見えるのですが正しいでしょうか?

SendBuffer.Reset();
SendBuffer << BLEND_SHAPE_PACKET_VER;
SendBuffer << DeviceId;
SendBuffer << SubjectName;
省4
430
(1): 2020/12/12(土)01:19 ID:SQmix3uJ(1) AAS
演算子のオーバーロードで検索
431
(1): 2020/12/12(土)06:51 ID:P0Jam5CX(1) AAS
>>429
もともとビットシフトの演算子だったが、標準ライブラリなんかで、
std::cout << ”こんにちわ、仕事" << std::endl;
みたいな使い方がされて、それに倣って、データを流し込むという
意味合いでこの演算子がよく使われる。

送信バッファーの末尾にどんどんデータを追記してるんだろうが、
これはライブラリ製作者が決めたことだ。

こういった元の演算子から大きく意味を変える演算子の再定義は
悪しとする批判的な意見もある。他人が読むことガン無視で
俺様仕様に調教していくのも趣味的で否定はせんけど。
432
(1): 2020/12/12(土)10:28 ID:cOibJfw/(2/5) AAS
>>430>>431
ありがとうございます。
このような演算子でオーバーロードされたデータをUDP経由で受け取って各データを取り出す場合、どのようにして取り出すのでしょうか?
左から何バイトずつ取り出して変数に格納するみたいなことをやる感じになるのでしょうか?
433
(1): はちみつ餃子 ◆8X2XSCHEME 2020/12/12(土)10:46 ID:UUApGKPR(1/3) AAS
>>432
演算子のオーバーロードとそのクラス内でどのようにデータが保持されているかは直接の関係はない。
クラスのデザインによる。

よう知らんけど >>429 の URL を踏んでも 404 なんやが。
434
(1): 2020/12/12(土)11:55 ID:cOibJfw/(3/5) AAS
>>433
すみません、UnrealEngineのコードは、GitHubのアカウントとUnrealEngineのアカウントと紐づけないと404になるようです。
紐づけ自体は無料です。

該当箇所のコードは以下のようになっています。ちょっと全体をキャプチャするのは難しいですが...
画像リンク[jpg]:dotup.org
435: はちみつ餃子 ◆8X2XSCHEME 2020/12/12(土)12:21 ID:UUApGKPR(2/3) AAS
>>434
その SendBuffer とやらがどう定義されているかによるので
使われている箇所だけを見てもわからんという話をしてる。

この場合はバッファと名前が付いてるから蓄積はされるんだろうけど、
たとえばネットを抽象化したクラスだったら
すぐさま送信してしまって手元にはデータは残ってないみたいなことだってあるかもしれない。
436
(1): 2020/12/12(土)12:52 ID:cOibJfw/(4/5) AAS
SendBufferを含む行は以下のようになっています。
これが定義になっているのかは分かりません…

const uint8 BLEND_SHAPE_PACKET_VER = 6;

// FrameTime BlendShapeCount Blendshapes SubjectName DeviceID
const uint32 MAX_BLEND_SHAPE_PACKET_SIZE = sizeof(BLEND_SHAPE_PACKET_VER) + sizeof(FQualifiedFrameTime) + sizeof(uint8) + (sizeof(float) * (uint64)EARFaceBlendShape::MAX) + (sizeof(TCHAR) * 256) + (sizeof(TCHAR) * 256);
const uint32 MIN_BLEND_SHAPE_PACKET_SIZE = sizeof(BLEND_SHAPE_PACKET_VER) + sizeof(FQualifiedFrameTime) + sizeof(uint8) + (sizeof(float) * (uint64)EARFaceBlendShape::MAX) + sizeof(TCHAR) + sizeof(TCHAR);

FAppleARKitLiveLinkRemotePublisher::FAppleARKitLiveLinkRemotePublisher(const FString& InRemoteIp) :
RemoteIp(InRemoteIp),
SendSocket(nullptr),
SendBuffer(MAX_BLEND_SHAPE_PACKET_SIZE)
省7
437
(1): はちみつ餃子 ◆8X2XSCHEME 2020/12/12(土)13:27 ID:UUApGKPR(3/3) AAS
>>436
それは FAppleARKitLiveLinkRemotePublisher のコンストラクタの定義。
FAppleARKitLiveLinkRemotePublisher 型のコンストラクタは
データメンバの SendBuffer を MAX_BLEND_SHAPE_PACKET_SIZE で初期化するという意味。

ようするに SendBuffer が何者かはわからん。

> これが定義になっているのかは分かりません

さすがにそれはあまりにも基礎知識すぎてそこから解説する気にはならないな。
どうして入門書を読むことすら一切せずにいきなり質問に突入するのかわからん。
438: 2020/12/12(土)19:18 ID:cOibJfw/(5/5) AAS
>>437
そうですね…
定義になっていないだろうなとは思ったんですが、これ以外にSendBuffer変数がどこにも見当たらなかったので
もしかしてこれで定義になってるのか…?という疑問の余地があったからそう書いてしまいました

Unrealのコード全体から調べてみると、TArray<uint8> SendBuffer;というのがあったりするので、もしかしてこれかなと思ったりするのですが、違う可能性は高そうです…。
そもそもUnrealの質問をC++のスレで聞くのが間違っていたかもしれないですが、Unrealのスレでもあまりプログラミングの話題は出ないので…
勉強して出直してきます…
ありがとうございました!
439: 2020/12/13(日)10:04 ID:FpioPUML(1) AAS
>>429
多分SendBufferに突っ込まれてるデータを横取りしたいんだろうけど、
SendBufferに<<で突っ込まれてるデータを一つ一つ自分が用意した配列とかに保存すりゃ出来ると思うが

UEが受信したデータを取り出して使いたいのなら、それはSendじゃないとおも
440: 2020/12/23(水)19:05 ID:LkSVqc8p(1/2) AAS
2D-arrayを初期化する際、

arr[][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};

とすべき所を、ついPythonの癖で間違えて

arr[][3] = {(1, 2, 3), (4, 5, 6), (7, 8, 9)};

と書いても、g++でコンパイルは通ってしまいます。当然、値はメチャクチャです。
C/C++ で、配列初期化の中に()を書くと、コンパイラーは何だと思って解釈してるのでしょうか?
441
(1): 2020/12/23(水)19:49 ID:LqKFMslD(1) AAS
外部リンク:ja.wikipedia.org
442: 2020/12/23(水)20:52 ID:LkSVqc8p(2/2) AAS
>>441
どうも有難うございました。
443: 2021/01/04(月)09:14 ID:QYpZPDPd(1) AAS
>>390
cスレで言うのもなんだけど、ループで総和計算にcは全く向いてないよ
pc上のgccでさえ、ccとfortranで10-100倍の差がある(-O1で比較)
cからの呼び出しオーバーヘッドも一回なんで気にする必要はない
再帰でたらい回しするようなコードは値渡しのcに多少分がある
444
(2): 2021/01/17(日)18:29 ID:wAwMcmVw(1/2) AAS
C++にも,pythonのsympyやnumpyのようなライブラリってあるのでしょうか?基本,自作しなければならないのでしょうか
445: 2021/01/17(日)19:47 ID:bWGlwscd(1) AAS
numpy/numpy/core/src/multiarray at master · numpy/numpy · GitHub
外部リンク:github.com

これをCに移植すりゃいいんでねえの
446
(1): 2021/01/17(日)20:18 ID:vSdpivaf(1) AAS
>>444
eigen3とかではダメかな
447: 2021/01/17(日)20:33 ID:wAwMcmVw(2/2) AAS
>>446
おお!参考になります!
当方,ずっとpythonを使ってたんですが,ちょっと処理が重くなりそうなツールを作ってみたくなり,c++に興味持ち始めました
文法理解以外に,ちょっとした数式計算やグラフ化に手こずる予感がしていたのですが,eigen3使えばなんとかなりそうな気がしてきた次第です
448: 2021/01/18(月)09:48 ID:iMz5nc0d(1/2) AAS
struct A{const int a; A(const int a):a(a){} };
struct B{ A as[4]; B(const int a):####{}};
上記####の部分は文法的にどのように書くべきでしょうか?
as({a,a,a,a})
みたいに書きたいのですがGNU拡張がどうの言われました
449: 2021/01/18(月)09:52 ID:iMz5nc0d(2/2) AAS
as{a,a,a,a}
で通りました(C++11)
お騒がせしました
450
(1): 2021/01/18(月)16:21 ID:0ToZeY7a(1) AAS
>>444
PythonNN.dll 経由すれば C++ からも numpy sympy 使い放題
451
(2): 2021/01/18(月)16:59 ID:9EUWE6k9(1) AAS
class Hoge; があるとして
Hoge *funcA()
{
return new Hoge;
}
Hoge funcB()
{
Hoge hoge;
return hoge;
}
省11
452: 2021/01/18(月)17:10 ID:O88gzKMG(1) AAS
戻り値のインスタンスがなんなのか考えれば判るんじゃね
453: 2021/01/18(月)21:16 ID:DX7cypHC(1/4) AAS
ちょっと疑問に思ったんだけど、PythonはC/C++の10倍速くないのか?
454: 2021/01/18(月)21:21 ID:WCGHfsAo(1) AAS
処理系やライブラリがC系で作られてるのだからそれはない

まあバリバリ最適化、場合によってはfortranとかも使ってたりもするから下手な組み方より速かったりするかも知れないが
455
(1): 2021/01/18(月)21:37 ID:DX7cypHC(2/4) AAS
たいていの言語はC/C++比何倍速いと言うのを売り文句にしてるけどな。
456: 2021/01/18(月)22:08 ID:jmv5waIw(1) AAS
>>455
具体的に挙げてみな
457: 2021/01/18(月)23:35 ID:DX7cypHC(3/4) AAS
Javaは20倍速いという有名なベンチマークがあったな。
458
(1): 2021/01/18(月)23:36 ID:I5iO9HnU(1) AAS
>>451
funcA: 呼び出し元で delete しないとメモリリーク
funcB: あまり問題ない
funcC: 戻り値にアクセスすると未定義動作
funcD: 呼び出すたびにメモリリーク

new の負荷や Hoge のコピーの負荷が気になったり気にならなかったりするかもしれない。
459
(1): 2021/01/18(月)23:47 ID:DX7cypHC(4/4) AAS
倍速い プログラミング
で検索して見たら、一等賞はRubyだった。
日本人として誇らしい。
460: 2021/01/19(火)11:42 ID:5vi2qmX/(1) AAS
>>459
お前朝鮮人やろ
461: 2021/01/19(火)12:12 ID:zeQTcQ2d(1) AAS
プログラムが速いのとプログラミングが早いのは別やろ
462
(1): 2021/01/19(火)12:20 ID:aQNqCNMI(1) AAS
>>458
funcBってコピーコンストラクタが呼ばれる?
効率悪くない?
463: 2021/01/19(火)13:00 ID:Ts6buLnF(1) AAS
funcCのやったら駄目コード funcDの確実に漏れるコード
と比較すると些細に見える
464
(1): 2021/01/19(火)13:10 ID:WOVrJxAW(1) AAS
>462
保証はないけど、コンパイラが頑張ってくれる場合があるんじゃなかったっけね?
465
(1): 2021/01/19(火)13:23 ID:NMZAA88j(1) AAS
>>451 >>464
Hogeのデストラクタでリソース解放するようなパターンで
2回解放されると困る場合があるな
もちろんブロックしてあったとしても解放一回でも問題ある訳だが
466
(1): 2021/01/19(火)13:53 ID:/3F2YDse(1) AAS
未定義動作はどういう処理されるかわからないので所詮メモリリークするだけとわかっているfuncDのほうが些細に見える
大抵の環境でこの手の未定義でメモリリークよりひどい状態にならないので、そういう環境であるならfuncCのほうが些細であると言える
467: 2021/01/19(火)14:11 ID:Ie5v0U2S(1) AAS
>>466
debug中は動作するけどrelease版にすると落ちるとか
468
(1): 2021/01/19(火)17:24 ID:sWXnNJkW(1) AAS
>>465
the rule of five
469: 2021/01/19(火)17:27 ID:HFbnFcCb(1) AAS
馬鹿がCのCGIモジュールで地方自治体のサービスを書いたせいでメモリリークしまくりの
複雑怪奇なコードが多量にある。対処が高価でメモリー潤沢なマシン、アホアホ大手のN
470: 2021/01/19(火)17:39 ID:KGVX5wki(1) AAS
歴史的経緯で仕方がなかったんじゃないの?
全部作り直しますからお金くださいなんて提案はなかなか通らないからね
471: 2021/01/19(火)19:17 ID:AfTAIlvJ(1/2) AAS
CGIの場合、確保したメモリーを解放しないのは、十分妥当な戦略なので、メモリーリークではないかもしれない。

高価なマシンは、アクセス数の対価では?
472: はちみつ餃子 ◆8X2XSCHEME 2021/01/19(火)20:50 ID:Zp03eKCw(1/2) AAS
さっと実行してそのまま終わるコマンドラインツールなんかだと
メモリの free はしなくて良いという論はあるね。

つっても、プログラムは改修されることもあるし、
一部を部品として切り出して転用したいこともある。
駄目だったらまた最初から作り直せばいいじゃんと言えるような
規模でもない限りはやっぱりそれなりに作法に
則っておかないとグダグダになると思うんだよな。
473: 2021/01/19(火)21:01 ID:JdenwtD2(1) AAS
exit on free ・・・・・・・
474
(1): 2021/01/19(火)21:55 ID:AfTAIlvJ(2/2) AAS
記憶域確保のコストは議論されるのに、なぜか解放のコストは議論されない。
475: はちみつ餃子 ◆8X2XSCHEME 2021/01/19(火)22:18 ID:Zp03eKCw(2/2) AAS
>>474
何を言ってるんだ? されてるだろ?
だから最後の free をすべきかどうかとかいう論が出てくるんじゃないか。
476: 2021/01/19(火)22:58 ID:9v9GfH+o(1) AAS
>>450
こういうのもあるんですね
ぜひ参考にさせていただきます!
477: 2021/01/20(水)11:08 ID:QYX8nqqa(1) AAS
>>468
GodJob
478: 2021/01/21(木)01:43 ID:Idvi/rDV(1) AAS
Hoge funcB2()
{
return Hoge{};
}

C++17以降はこれが正解
他に対してデメリットしかない
479: 2021/01/21(木)10:32 ID:uTJ86sk/(1) AAS
デメリットしかないんじゃダメじゃん
480
(1): 2021/01/21(木)14:04 ID:8mOSdfp6(1) AAS
move constructor と copy constructor があるのは理解したが
どちらがどういうタイミング(条件)で使い分けられるのか
詳しく正しく解説してるサイトはありませんか?
481
(1): 2021/01/21(木)19:08 ID:9K5m0BUg(1) AAS
>>480
std::move()
あと氏ね
482: 2021/01/21(木)19:38 ID:QF6BlJBZ(1) AAS
>>481
言葉が悪いな。それで教えているつもりか。
まぁヒントぐらいにはなったな。
うむごくろう。
483: はちみつ餃子 ◆8X2XSCHEME 2021/01/21(木)21:13 ID:ooF1treM(1) AAS
rvalue を受け取れるところに rvalue を渡したらムーブになるという単純な規則なので詳しい説明を見るまでもないよ。
(一定の条件を満たすとコピーもムーブも省略して直接オブジェクトを構築するといったような例外はある。 いわゆる RVO)

でも何が rvalue なのかとか右辺値参照の仕組みだとかいった前提知識は必要なので、
そこらへんも含めた総合的な説明となると「江添亮の C++ 入門」を一通り読めばいいと思う。

外部リンク:ezoeryou.github.io
484
(1): 2021/01/22(金)15:56 ID:8dGlMjdy(1) AAS
rvoはあくまでコピーの省略であってムーブの省略ではないぞ
あと江添本ゴリ押しするくらいならこっちにしろ
外部リンク[html]:cpplover.blogspot.com
485: はちみつ餃子 ◆8X2XSCHEME 2021/01/22(金)16:11 ID:gbaM/AZn(1) AAS
>>484
ムーブも省略の対象になるよ。
外部リンク[copy]:timsong-cpp.github.io

RVO という言葉がそれを含むかどうかは場合によると思うけど。
486
(1): 2021/01/22(金)17:23 ID:tN/hhIBk(1) AAS
string Hoge(){ return string("HOGE"); } があって
string s = Hoge();
char *p = s.c_str();
で p を使用する側があるとき
const char *Fuga(){ return string("HOGE").c_str(); } を代わりに使おうとすると
const char *q = Fuga();
までは正常(に観える)ですがその後 q の中身が消えてしまいます。
理由は判るのですが Fuga みたいな関数を作りたいときどのように描くのが普通ですか?
487: 2021/01/22(金)17:37 ID:Zh6FWeVu(1) AAS
>>486
最初の3行で書いているやり方でいいんじゃないの
488: 2021/01/22(金)17:39 ID:3IahkNr8(1) AAS
例を満たすだけなら
const char* Fugo() { return "HOGE"; }
が一番楽だと思うけど、もうちょっとやりたいことを具体的に
489: 2021/01/25(月)12:00 ID:55szcPbX(1) AAS
ふと思ったのですが、
文字の配列(文字列)を char * で表すとき、最後の要素をヌル文字にすることで、文字列の長さを
別に指定しなくて済んでますよね。
同様に、任意のデータ(例えば構造体とか)の配列をポインタで表すとき、終端に何か特別な
値をセットして、配列の要素数を指定せずに済ませられますかね?
490: 2021/01/25(月)12:05 ID:ptYOaHFL(1/3) AAS
番兵値とかnullオブジェクトパターンとかでググれ
491: 2021/01/25(月)14:11 ID:83sbARL7(1) AAS
番兵を知らないってことはアルゴリズムの教科書を買った方がいい
492: 2021/01/25(月)14:51 ID:/FcSLyrh(1) AAS
ただのnull終端を番兵と呼んでるんなら、
それこそまともなアルゴリズムの本をちゃんと読んだほうがいい。
493: 2021/01/25(月)15:21 ID:g2C+jwSi(1) AAS
strlen()はあるのにobjlen()とかlistlen()とかstructlen()が無いね
494: 2021/01/25(月)15:22 ID:ptYOaHFL(2/3) AAS
つsizeof
1-
あと 508 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.038s