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バイト以上になったらテキストファイルをメモリマッピングして
読み書きしてるプログラムがほぼ全滅するじゃん。
絶対あってはいけないことを仮定し、それに対するなんの解決にもならない
オレオレ解決策を提示するのは野暮だね。
0643デフォルトの名無しさん2014/04/30(水) 04:09:09.95ID:OAq57yR0
名前欄のところにAA使うヤツってイタいのしか居ないのか?
uy
,,・´∀`・,,)っ-○○○
それとも、技術力が低いところと粘着質なところをみると同一人物か?
>>643
uyと顔文字だったら技術力は桁違いだぞ。それが読み取れないとしたら、余程読解力が足らないんじゃないか? ぷろぐらまには観察力も必要
好き・嫌いだけで思考停止する奴は向いてない
まあコテはだいたいキチガイだからキチガイ認定しておけば九分九厘正しい
>>648
本当に粘着性だな
それとも成り済ましか? >>647
コテはただの基地ではない。自意識過剰な基地。 0651デフォルトの名無しさん2014/11/04(火) 04:16:52.73ID:9XcfLbNC
sizeof (*s)だろ
wchar_tにする必要が出た場合にわざわざ書き換えるのか?
charを使うのがそもそも誤り
int8_tを使えばもーまんこたい
0654デフォルトの名無しさん2016/03/29(火) 10:13:01.80ID:/c8bAcK4
サッカーブッシュ日本代表日程ぷあたん(しゅっちょうまいくろ教育長交代)春文執行40代売上差額シュガーチョコ
https://www.youtube.com/watch?v=NDq1QoJY0nY宇ドナルドアナリストパワーストーンコーチングとしまえん
サッカーブッシュ日本代表日程古本屋よしたけしゅっちょうちょこしゅがー
ディーラー税務署天才開発者死亡詰みヨミドクターマイクロサービス不足
サッカーブッシュ日本代表日程ぷあたんシフト光金さかい強制バイト人権侵害問題
春分資源執行ニューヨーク低原価ぼったステーキソルトレイク福岡横浜新橋奴隷課金パチシフト強制バイト問題新潟米センター生残
コスメ24チャリティー隠れ40代生活保護プレイボーイバイトレードいたりあん接待問題
マスコミKARDローンケーオーサービス不足婚活パーティー寄付金執行原発ビジネス
FBIチャイニーズタイホテル売上事務所ガチャ決算ガチャキャンペーン(販売報道陣過激派組織向携帯最新情報提供終了
校長発言細心注意ノートン産廃エラー(著作権クレーム中国反応融資高額教育費)(中国捕鯨団体40代社員サッカーコメント
高額入学金ヤフウ新橋大学ヤフウ新橋理事長FX経費 おじや50代資産ガリバズフィード40代エリート >>1
もう少し保守性ということを考えたほうがいいな malloc(sizeof(*s)*(strlen(s)+1))
だな
0657デフォルトの名無しさん2018/05/23(水) 21:10:29.59ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
EVRSR
0658デフォルトの名無しさん2018/07/05(木) 00:46:51.44ID:RfoszcD2
J7V
逆だもんね
sizeof(char)が1として他のsizeofの意味が定義されている
0661デフォルトの名無しさん2021/11/22(月) 05:30:11.46ID:BgcNaRYw
sizeof char8_t ならok
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ビット
charのサイズに関わらず
ストレージの容量
メインメモリの容量
データ通信速度
データ通信量
全てこれで統一されている
コンパイラが何であれ
そんな一般論は中学生以上ならだれでも知ってるんだよ
そういう一般論でプログラミングして問題起きないのかってスレなんだよ
そして問題ありって具体例が挙げられたというのになぜそんなにかたくなに・・・