sizeof(char)が必ず1でも、省略すべきではない
malloc(sizeof(char)*(strlen(s)+1))
ではなく
malloc(strlen(s)+1)
と書くような糞コードばかり見て育った、
悪しき慣習を引きずった人は引退すべし
お前ら知ってる?
for (int i = 0; i < array.size(); i++)
は
for (int i = 0 * sizeof(char); i * sizeof(char) < array.size() * sizeof (char); i += 1 * sizeof (char))
の省略表現なんだぜ。
整数型をとる関数の返り値でreturn 1; とかやってるのも
実は return 1 * sizeof (char); を省略したものなのだ。
省略が嫌いな人はちゃんと書くように心がけよう。
極論だけど、「省略」という概念を勝手に作り出すというのはこういうことなんだよ。 ダンゴさん荒ぶってるなw
あなたそんなキャラでしたっけ?w sizeof(char)を使うべきと主張してる例として出てくるコードが
strdup()の車輪の再発明しかないという現実に絶望したのだ 別にsizeof(char)いいと思うけどなぁ
ほんの少しだけ柔軟
別にめんどいなら1書くしなー
というかこういう話は規約レベルであって個人なら適当でええんでないの そういうヤカラは
if (isfoo(a) == TRUE)
と書いて満足げだったりするからタチ悪い。 >>637
本来必要の無い冗長な式ととわかった上で「別にいい」というのなら
何も反論はない。好みの問題だからな。
書くべき理由も無いし書いたらダメという理由もない。
書かないことを「省略」という概念で捉えるバカは救いようが無い。
sizeof (char)を掛けるのが害悪なのではなく
言語の基本的な仕様すら正しく理解せずにコードを書く人間が
バグの根源なのだ。 strlen()は引数のアドレスから'\0'のアドレスまでの差分を返す関数だから
>>1のような例の場合には仮にcharが2バイトになろうが4バイトになろうが無意味だな いや、書くとしたらmalloc(strlen(s)+sizeof(char))か だからさ何度も言ってることだけど
charが2バイト以上になったらテキストファイルをメモリマッピングして
読み書きしてるプログラムがほぼ全滅するじゃん。
絶対あってはいけないことを仮定し、それに対するなんの解決にもならない
オレオレ解決策を提示するのは野暮だね。 名前欄のところにAA使うヤツってイタいのしか居ないのか?
uy
,,・´∀`・,,)っ-○○○
それとも、技術力が低いところと粘着質なところをみると同一人物か? >>643
uyと顔文字だったら技術力は桁違いだぞ。それが読み取れないとしたら、余程読解力が足らないんじゃないか? ぷろぐらまには観察力も必要
好き・嫌いだけで思考停止する奴は向いてない まあコテはだいたいキチガイだからキチガイ認定しておけば九分九厘正しい >>648
本当に粘着性だな
それとも成り済ましか? >>647
コテはただの基地ではない。自意識過剰な基地。 sizeof (*s)だろ
wchar_tにする必要が出た場合にわざわざ書き換えるのか? charを使うのがそもそも誤り
int8_tを使えばもーまんこたい サッカーブッシュ日本代表日程ぷあたん(しゅっちょうまいくろ教育長交代)春文執行40代売上差額シュガーチョコ
https://www.youtube.com/watch?v=NDq1QoJY0nY宇ドナルドアナリストパワーストーンコーチングとしまえん
サッカーブッシュ日本代表日程古本屋よしたけしゅっちょうちょこしゅがー
ディーラー税務署天才開発者死亡詰みヨミドクターマイクロサービス不足
サッカーブッシュ日本代表日程ぷあたんシフト光金さかい強制バイト人権侵害問題
春分資源執行ニューヨーク低原価ぼったステーキソルトレイク福岡横浜新橋奴隷課金パチシフト強制バイト問題新潟米センター生残
コスメ24チャリティー隠れ40代生活保護プレイボーイバイトレードいたりあん接待問題
マスコミKARDローンケーオーサービス不足婚活パーティー寄付金執行原発ビジネス
FBIチャイニーズタイホテル売上事務所ガチャ決算ガチャキャンペーン(販売報道陣過激派組織向携帯最新情報提供終了
校長発言細心注意ノートン産廃エラー(著作権クレーム中国反応融資高額教育費)(中国捕鯨団体40代社員サッカーコメント
高額入学金ヤフウ新橋大学ヤフウ新橋理事長FX経費 おじや50代資産ガリバズフィード40代エリート >>1
もう少し保守性ということを考えたほうがいいな malloc(sizeof(*s)*(strlen(s)+1))
だな 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
EVRSR 逆だもんね
sizeof(char)が1として他のsizeofの意味が定義されている char、intなんて使うな
s8,u8,s16,u16...と定義しておけば移植上の問題も解決しここのchar符号つきだったっけ?などと悩む必要もなくなる >>662
8bitの型が存在しない環境もあるわけだが
移植の問題はそんな単純じゃない いつのスレだこれw
charが1バイト以外なんてきいたことないんだけど現実にあるのか?
memalloc(tcslen(s)+1)とかc#ならなんてならわかるけど どこであるの?
16ってことはユニコードなんだろうけどstrlenやcharが16で扱われるなら、普通の8bit文字はどういう型や関数になるの? そいつもcharは1バイトだしsizeof(char)=1だしmallocも誤作動しない
1バイトが16ビットという変態なだけみたいだな 通信系で8ビットデータをcharに1バイトずつ入れるか2バイトずつパックして入れるか
の2通りを用意しなきゃならないのが面倒だった
charのサイズよりも
それ意外の特殊な構造の方がよっぽど大変だった 1バイトは8ビットかもしれないけど1バイトは16ビットなんだよ
16ビットのintのサイズすら1バイト
https://www.tij.co.jp/jp/lit/ug/spru514w/spru514w.pdf
103ページ
> TMS320C28x Byte is 16 Bits
> Since the TMS320C28x char is 16 bits (to make it separately addressable),
> a byte is also 16 bits.
> size of (int) = = 1 (not 2). TIがいってるだけで
一般的には1バイトは8bit C2000を使って開発してた時も当然1バイトは8ビットとして会話してた
そうじゃないと会話が成り立たない 標準ライブラリの関数仕様も○○文字
(○○charactors)と記述する [迷信] 1バイトは8ビット
https://www.kijineko.co.jp/%e8%bf%b7%e4%bf%a1-1%e3%83%90%e3%82%a4%e3%83%88%e3%81%af8%e3%83%93%e3%83%83%e3%83%88/
2008年にIEC 80000-13:2008で1バイトは8ビットと定義されたのですが、C言語やC++では、その後の規格(C17やC++20など)でも1バイトのビット数は処理系定義のままになっています。
では、C言語やC++における1バイトは実際に何ビットになっているかというと、<limits.h>ヘッダで定義されるCHAR_BITマクロがそれを表しています。CHAR_BITマクロは少なくとも8以上に定義されることが保証されています。すなわち、1バイトが9ビットであったり、16ビットであったり、64ビットであったとしても、規格上は何ら問題ありませんし、そうした処理系が実際に存在します。 一般的には1バイトは8ビット
charのサイズに関わらず ストレージの容量
メインメモリの容量
データ通信速度
データ通信量
全てこれで統一されている
コンパイラが何であれ そんな一般論は中学生以上ならだれでも知ってるんだよ
そういう一般論でプログラミングして問題起きないのかってスレなんだよ
そして問題ありって具体例が挙げられたというのになぜそんなにかたくなに・・・