C言語なら俺に聞け 146 at TECH
[2ch|▼Menu]
[前50を表示]
200:デフォルトの名無しさん
18/05/31 01:29:57.08 FEa+Gvkc0.net
デバッグする時はいいのでは?

201:デフォルトの名無しさん
18/05/31 01:31:10.71 g4jt9Ien0.net
とりあえずsetter/getterはクソだな
オブジェクト界最大の汚点だ

202:デフォルトの名無しさん
18/05/31 01:52:22.10 HP6OddUA0.net
つ プロパティ

203:デフォルトの名無しさん
18/05/31 09:09:16.76 lN1dVvxL0.net
>>197
それこそ真ゲッターだろ

204:デフォルトの名無しさん
18/05/31 09:20:10.03 HP6OddUA0.net
プログラム言語がサポートしていればそれ程酷いことにはならない
URLリンク(ja.wikipedia.org)(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)

205:デフォルトの名無しさん
18/06/01 21:19:49.50 L4m1DFki0.net
バッチなのですがスペースの問題にぶち当たってます
素敵仕様って言うんですかね?
フルパスから拡張子を抜いたファイル名を取得したいんですが
%^n1でファイル名を取得しているんですが
ファイル名に全角スペースが入っているため完全なファイル名が取得できなく困っています
""で囲っても取得できないです 全角スペースと半角スペースが混ざっていると取得できるのですがなにかいい方法ありますか?
"D&Dで渡したファイルのパスが欲しい"に拘らなければ、テキストファイルにパスリストを書いて読み込むみたいな外部ファイルを使う方法にするとか
Powershellみたいに.Net Framwork呼ぶとか
もしくはファイル名取得用のコンパイルファイルをかますとか
Google先生以上の回答は出ないでしょうか?

206:デフォルトの名無しさん
18/06/01 21:35:57.65 Hbp4Wjs80.net
C言語との関連を1行で述べよ

207:デフォルトの名無しさん
18/06/03 16:23:01.05 i7wWwbyd0.net
void func(char *const restrict ary)
{
printf("%s\n",ary);
*(ary + 1) = '\0';
printf("%s\n",ary);
}
int main( int argc, char *argv[] )
{
char ary[] = "hoge";
func(ary);
return 0;
}

208:デフォルトの名無しさん
18/06/03 16:24:38.29 i7wWwbyd0.net
このコードで配列の中身が書き換えられてしまうんですけどなぜですか?
constとrestrictの関係性がいまいちよくわかってないです・・・

209:
18/06/03 17:12:43.28 5RsKIUxf0.net
>>202-203
const の位置が悪い
URLリンク(ideone.com)
ristrict は関係ない

210:デフォルトの名無しさん
18/06/03 17:20:37.50 DGByVz/ba.net
スマホでポチポチ入力してたら既に書かれてるけど
>>202-203
とりあえずrestrictは無視するとして
>char *const ary
aryが定数。ary=0はコンパイルエラー。*ary=0はOK
>const char* aryまたは char const* ary
aryの参照先が定数。ary=0はOK、*ary=0はエラー

211:デフォルトの名無しさん
18/06/03 17:23:51.40 m3SIxw/I0.net
>>202>>203
func() の中の *(any + 1) = '\0' がコンパイルエラーにならない理由は const が any に対するものであって
*any に対するものではないから。そのプログラムの場合 any そのものを変化させる any = NULL や any++
みたいな記述があるとエラーになる。
restrict はコンパイラの最適化に対するヒントで、そのポインタが別のポインタによって指されていないことを
前提とした最適化をして良いことをコンパイラに伝えるためのものだ。伝えられた側のコンパイラはそのような
最適化をやってもいいしやらなくても良い。

212:
18/06/03 17:24:22.63 5RsKIUxf0.net
>>205
>スマホでポチポチ入力してたら既に書かれてるけど
どうして、書いている時点でそれがわかるのですか?高性能な専用ブラウザなんでしょうか

213:デフォルトの名無しさん
18/06/03 17:25:19.52 m3SIxw/I0.net
うう。ゆっくり書いてたら間に二つも回答が・・・

214:デフォルトの名無しさん
18/06/03 17:29:03.88 xPBqnvux0.net
>>202-203
俺C言語詳しくない素人だけど、
ポインタに const 修飾子をつけるとき、
修飾子の位置によって定数化されるのが「ポインタ」か「ポインタの指す値」かが異なる。
char *const ary の場合はポインタ(アドレス)を書き換え不可。
++ary; は不可
*ary = 'A'; はOK
const char *ary の場合は値(文字列)を書き換え不可。
++ary; はOK
*ary = 'A'; は不可
restrict 修飾子は初めて見たけど、ググった限りは最適化に使うもので、
プログラムの意味は変わらないので無視してよかろう。

215:デフォルトの名無しさん
18/06/03 17:29:56.23 xPBqnvux0.net
>>208
俺なんかゆっくり書いてる間に回答が3つも…

216:デフォルトの名無しさん
18/06/03 17:32:22.37 xPBqnvux0.net
ポインタも値もどっちも書き換え不可にするには
const 型* const 変数名;
としないといけなそうだな。

217:デフォルトの名無しさん
18/06/03 20:58:34.59 m3SIxw/I0.net
型 const * const 変数名; でも良い。

218:デフォルトの名無しさん
18/06/03 22:02:08.16 .net
いつかどこかで見たこの流れ

219:デフォルトの名無しさん
18/06/04 08:50:32.40 3BCLNr2eM.net
*const 変数名
って書くより
変数名[ ]
って書く方が好き

220:デフォルトの名無しさん
18/06/04 19:56:59.58 /VyRep/C0.net
全然関係ないのを比べてるアホ

221:
18/06/04 21:09:00.97 gbEnuF2j0.net
モノクロA4レーザープリンタが、値段も含めていい感じになっていますね…

222:デフォルトの名無しさん
18/06/07 23:22:34.08 69L/zpo00.net
>>209
>>210
でも一番わかりやすい!
まぁ、よく見る
const char **
の大半は意図した通りに機能してないよな
誰も中み書き換えないから表面化しないけど。。。

223:
18/06/08 00:03:38.43 +kkHvNSG0.net
>>217
const 修飾子を型指定より前にもってくる書き方は正直いってなじめないですよね

224:
18/06/08 00:06:11.65 +kkHvNSG0.net
関係ないけれども、今日から「民法」を勉強しはじめました、民法20条まで進みました
こういうのも新鮮でおもしろいなあ、と思いました

225:デフォルトの名無しさん
18/06/08 05:45:49.36 524P9UER0.net
民法総則からキチンと基本原理を体型立ててやらないと理解できんぞ

226:デフォルトの名無しさん
18/06/08 09:37:11.15 1PlqYTvda.net
そうか。じゃあ俺は拳法始めよう。

227:デフォルトの名無しさん
18/06/08 17:49:04.15 rAAW+Mj80.net
>>219
2chのルールも覚えろよ、タコ

228:
18/06/09 00:34:01.58 BV3WmSRm0.net
>>219
民法94条に到達して手が止まりました
これは難しい…条文は簡潔ですが判例が複雑怪奇でパターン抽出できないでいます
>>220
直に法文文面や判例にアタックしていますが弾き返されていますね…特に判例は裁判官の個性が見える気がします、当初考えていたほど「画一的」ではなかったのです

229:デフォルトの名無しさん
18/06/09 05:48:25.82 nuHHgQUg0.net
>>223
さあ、適切なスレに移動してそこで10年くらい引きこもっていようか。

230:デフォルトの名無しさん
18/06/10 16:01:47.15 vqmuo9CDG
ポインタと配列、勉強中のものです。
演習5−4のアンサーブックが気に入りません。
なんでbreakとかするか
最後の7行、次のようで何か問題あるでしょうか
for ( ; *s == *t ; s--, t--)
    ;
if ( t == bt)
    return 1;
else
    return 0;

231:デフォルトの名無しさん
18/06/11 14:18:49.70 okfnqjZUX
225
間違いに気づきました。失礼しました。

232:デフォルトの名無しさん
18/06/21 21:10:00.20 uId0yWCha.net
配列の中身を一つずつ見て0じゃなかったら0にするみたいなプログラムがあります。
中身を見て代入するか分岐するのと、
投機的に0を代入する方法のどちらが速いのでしょうか

233:デフォルトの名無しさん
18/06/21 21:18:45.56 PKzn8umZH.net
推測するな、計測せよ

234:デフォルトの名無しさん
18/06/21 21:21:14.62 bCLvNhPr0.net
無条件に0代入する方がそりゃ速いだろう

235:デフォルトの名無しさん
18/06/21 21:24:54.22 sKPxBIBt0.net
>>227
もちろん見ないほうが早い。
memsetで一気に0にするのが最速。
気になるなら測定しましょう。測定しない効率化なんてありえないよ。
それと、こいつを壁に飾っとくべし。
「プログラム最適化の第一法則:最適化するな」

236:デフォルトの名無しさん
18/06/21 21:46:17.50 KRXESqZV0.net
>>222
ここは5chだ ぼけ

237:デフォルトの名無しさん
18/06/21 21:52:50.57 +L4M88hA0.net
最適化されたらどう書いても memset 使ったのと同じになるかも知れないけどな

238:デフォルトの名無しさん
18/06/21 22:26:17.21 iolQTPDna.net
なんで開発要件も聞かないうちから見ないほうが速いに決まってるって言いきれるの?
0以外が入ってる可能性が低くて、書くより読むのが圧倒的に速いハードだったら責任取れんのかよ!

239:デフォルトの名無しさん
18/06/21 22:39:37.01 +L4M88hA0.net
そんな特殊な環境なら最初からそう書いてくれない限りまともな回答はなくて当然

240:デフォルトの名無しさん
18/06/22 00:33:00.46 Er730np30.net
DRAMは読み書き同じ速度だけど
MRAMとかは書くのが遅いんで
チェックして書くのを最低限にするのが常識になる時代が来るかも

241:デフォルトの名無しさん
18/06/22 00:53:38.92 /eT76nj20.net
>>233
>>230
> 気になるなら測定しましょう。測定しない効率化なんてありえないよ。
> それと、こいつを壁に飾っとくべし。
> 「プログラム最適化の第一法則:最適化するな」

242:デフォルトの名無しさん
18/06/22 01:43:13.95 Hssdw/9K0.net
>>233
これおれも思った
圧倒的じゃなくても0率がたかくて書くのが遅ければそう
組み込みならメモリマップでメモリ以外のデバイスがつながってるかも知れないし
あとはコードがそうなってる可能性としては
0じゃない個数を数えるコードを入れやすいようにとか
SFRで書く命令が決まってるとか
キャッシュの関係でなるべく書きたくないとか
C言語スレだからな


243: 組み込みの可能性も当然考えなければ あと、 条件が整えばmemcpyより速いコードは作れる アラインメントが事前にわかってるとか SIMD命令が使える事がわかっているとか DMAが有効とか



244:デフォルトの名無しさん
18/06/22 02:00:59.03 F3L5fVz60.net
>>234
完全に同意

245:デフォルトの名無しさん
18/06/22 02:54:33.68 Hssdw/9K0.net
経験の無さ自慢?
特殊なコードに対して特殊な状況を考えられないアホ自慢?

246:デフォルトの名無しさん
18/06/22 03:26:32.81 +fWpKJrf0.net
>>239
>>234

247:デフォルトの名無しさん
18/06/22 06:50:11.82 Hssdw/9K0.net
特殊な状況が考えられないアホ

248:デフォルトの名無しさん
18/06/22 09:18:53.30 xGEr9UFx0.net
暇だと盛り上がるな
そんなに仕事が無いのか

249:デフォルトの名無しさん
18/06/22 09:40:17.18 TLETRHnoa.net
自分は特殊な状況を考えられる特別な人と思いたいんですね。わかります。

250:デフォルトの名無しさん
18/06/22 09:45:14.96 0px4TqJVd.net
普通の人
考えられないのはアホと言うだけの話

251:デフォルトの名無しさん
18/06/22 10:10:27.57 TLETRHnoa.net
なんとしてでも自分以外をアホということにしておきたい。わかります。

252:デフォルトの名無しさん
18/06/22 10:39:59.24 xGEr9UFx0.net
特殊な環境でしか生きられないなら、そこから出てくるなよ

253:デフォルトの名無しさん
18/06/22 10:54:33.90 VkaCaqwn0.net
実測が基本で、実測が出来ないなら
一般的な環境を想定してシンプルに記述するのが基本じゃないの

254:デフォルトの名無しさん
18/06/22 11:42:26.55 mMOSdCU40.net
Q.xxとxxどっちの書き方が速いですか?
A.環境依存

255:デフォルトの名無しさん
18/06/22 18:28:15.80 0px4TqJVd.net
まあ明らかな場合もあるけどね
特定の環境用コードなら実測が基本
でも仕事だと全てのパターンを実測してる暇は無い
そこでプロの勘を使う

256:デフォルトの名無しさん
18/06/22 19:23:17.01 SPkT+A/00.net
大多数に当てはまるならそれでいい派 VS 1例でも当てはまらないならダメ派

257:デフォルトの名無しさん
18/06/22 19:28:58.41 0px4TqJVd.net
特殊なコードに対して大多数とか

258:デフォルトの名無しさん
18/06/22 19:40:06.51 SPkT+A/00.net
今回だけじゃないだろ。
「xxxでどうなんですか?」
「(基本的な環境では)xxxだよ」
「いや、xxxxという稀な環境だと当てはまらないからそれは間違いだ!!」
しょっちゅう見かけるわ。

259:デフォルトの名無しさん
18/06/22 19:59:19.08 /0JmIthOa.net
命名
 特殊厨

260:デフォルトの名無しさん
18/06/23 00:09:39.96 PyIuKJwY0.net
「極稀に当てはまらない場合がある」
  ↓
「だから気を付けよう」→穏便に話が終わる
「そんなことも知らない(思いつかない)のか!!」→荒れる

261:デフォルトの名無しさん
18/06/23 00:22:38.81 j+rjEHjB0.net
荒らすのが目的なんだろう

262:デフォルトの名無しさん
18/06/23 00:38:49.81 EFPp8pY40.net
極稀な事を思いつく自分は頭が良くて偉いと言いたいのでしょう。仕方のない事です。
彼はこれまでずっと馬鹿にされ蔑まされてきたのですから。このような機会がなければ
うっぷんを晴らすことができません。もしここで人を罵倒する事が出来なければ彼は
益々ストレスを溜め鉈を持って新幹線に乗ってしまうかも知れません。もはや誰でも
良いのです。掲示板でこの程度のやり取りで大事件が防げるのならば安いものです。

263:デフォルトの名無しさん
18/06/23 00:44:54.58 5Wb6fwhKM.net
「hogeとfugaのどちらが速いのでしょうか?」
「推測するな、計測せよ」
「極稀に当てはまらない場合がある」
「えっ???」

264:デフォルトの名無しさん
18/06/23 07:59:41.23 9burbaTH0.net
結局最後はマウント合戦

265:デフォルトの名無しさん
18/06/23 08:15:09.58 v6rjk3zs0.net
まあ>>233の指摘はアリだと思うし>>238辺りまでの対応はまあ普通
要するに>>239が無駄に荒らしてるだけ

266:デフォルトの名無しさん
18/06/23 10:36:50.42 ul2D0Jgq0.net
>>233も、指摘の内容はいいんだけど、責任とれるのかよなんて攻撃的な言い方するのは余計なんだよね。

267:デフォルトの名無しさん
18/06/23 10:41:43.05


268:VDaSN7SRM.net



269:デフォルトの名無しさん
18/06/23 10:41:52.76 UiVIxiJp0.net
技術的な話が出来ない人が人たたき

270:デフォルトの名無しさん
18/06/23 10:43:35.40 UiVIxiJp0.net
>>227が速さしか考えてないってのがそもそも素人

271:デフォルトの名無しさん
18/06/23 10:47:10.93 UiVIxiJp0.net
memsetが最速とか素人丸出し

272:デフォルトの名無しさん
18/06/23 11:04:40.17 v6rjk3zs0.net
>>260
そこら辺は各人の取り方だけど無条件に代入が速いとか言ってる>>229-230が部下だったら俺も同じように言うと思う

273:デフォルトの名無しさん
18/06/23 11:14:50.84 ONikHNCn0.net
素人素人と連呼してるやつ
自分が言われて傷ついているんだなw
memsetは速いぜ?
逆汗までしなくとも
ベンチマークくらいしてみたか

274:デフォルトの名無しさん
18/06/23 12:36:39.74 UiVIxiJp0.net
パフォーマンス最高な汎用コピー関数など存在しない

275:デフォルトの名無しさん
18/06/23 12:40:49.76 2drravQ10.net
memcpyとmemsetの混同か?

276:デフォルトの名無しさん
18/06/23 12:44:28.88 UiVIxiJp0.net
ライブラリや開発環境
使える命令やハード
コア数、キャッシュサイズ、アーキテクチャ
クリアするサイズ
アラインメント
クリアするデバイス
データの出現率
こんなことで最速は変わる
memsetが1バイトずつちまちま代入するようなライブラリも世の中にはたくさんある
小規模組み込みの環境では大抵そう

277:デフォルトの名無しさん
18/06/23 13:39:04.42 EFPp8pY40.net
この頃のCPUだと特定の領域を0にする命令自体が最初からあったりしないのかね?ありそうな感じするんだけど。で、最適化されるとmemsetがその命令一つに置き換わって終わり。

278:デフォルトの名無しさん
18/06/23 14:01:42.25 v6rjk3zs0.net
>>268
memcpy って言ってるのは一人だけだしあまり賢くないみたいだから無視していいかと

279:デフォルトの名無しさん
18/06/23 14:05:45.27 UiVIxiJp0.net
遅くていいならREP STOSD命令
CPUを使わない方法もいくつか
DMAを使ったり
SRAMの場合デバイスリセットで0クリアされたり
FLASHだとイレースコマンドとか
PCでDMAを使う簡単な方法は
GPUのメモリをゼロクリアしておいて転送する

280:デフォルトの名無しさん
18/06/23 14:06:13.14 j+rjEHjB0.net
大抵のCPUにあるだろう

281:デフォルトの名無しさん
18/06/23 14:07:19.32 UiVIxiJp0.net
>>268
あ、ごめんコピーじゃなくてクリアの間違い

282:デフォルトの名無しさん
18/06/23 14:09:24.26 UiVIxiJp0.net
>>273
普通は無いだろ
REP STOSDだって単なるループ

283:デフォルトの名無しさん
18/06/23 14:15:50.50 UiVIxiJp0.net
レジスタからメモリにコピーすると考えれば
コピーでも間違いではないけど

284:デフォルトの名無しさん
18/06/23 14:18:09.09 xQlm4MUY0.net
だから実測しろっての

285:デフォルトの名無しさん
18/06/23 14:42:28.77 VDaSN7SRM.net
>>277
妄想で生きてる奴には何言っても無駄だよ

286:デフォルトの名無しさん
18/06/23 14:45:35.16 UiVIxiJp0.net
>>227の回答なら
「環境依存、実測しないとわからない」
で終わり

287:デフォルトの名無しさん
18/06/24 12:30:50.34 wvlf5m9A0.net
前工程で処理するのが最善

288:デフォルトの名無しさん
18/06/25 12:44:11.34 UNYa6OHo0.net
というか、高速化しなきゃなやばいかなー と思ったのなら
void SAKUJO(dst,size){ memset(dst,0,size); }
くらいクソ適当に書いておいて、「あとで」 ごちゃごちゃいじればよろしい
それか、>>280のように 事前に済ませておく かだな

289:デフォルトの名無しさん
18/06/25 12:54:48.48 //DXoKuSa.net
ま、しかし、よくよく考えてみれば全てを同じ値で埋めておかねばならない状況はあまりないのではないか?
面倒だから一気に全て0にしておいて後から必要な所を埋めるなんてのはよくあるかも知れないが。
そういうのでも calloc() でメモリ確保するなら考える必要ないよな。

290:デフォルトの名無しさん
18/06/25 12:57:20.57 ol2B/pPQd.net
誰がどんな意図で書いたかわからないもの
わざわざ変えなくていいよ
問題があるとわかった時点で考えればいい

291:デフォルトの名無しさん
18/06/25 13:16:25.31 aMpIUa/b0.net
0クリアの話題でると思い出す事件があったな
某サイトでは業務Gと制御Gの2グループがあって
制御Gは業務Gの処理(データ値)には介入しないという建前があった
あるレコードを更新する時、その整合性の確認をとるため、
制御Gは、キーとなる構造体をmemcmpして一致の判定していた
業務Gは、処理関数の中で構造体を自動変数として確保し、
メンバーに一つ一つ値を設定していた
キーを指定し更新処理を呼んでも一致するデータが見つからないと
エラーが返される結果となった
何故エラーにされるのか、しばらくの間、原因が分からなかった。

292:デフォルトの名無しさん
18/06/25 13:19:21.95 //DXoKuSa.net
={0} での初期化を布教した方が良いね

293:デフォルトの名無しさん
18/06/25 13:29:18.12 ol2B/pPQd.net
>>284
初心者がいると大変だよね

294:デフォルトの名無しさん
18/06/25 20:22:42.87 HTnjHonAM.net
>>284
Paddingのゴミだろ
構造体をmemcmpの時点でダメ

295:デフォルトの名無しさん
18/06/25 23:31:05.64 LSXBma6V0.net
みんなわかってるからそんな事いちいち書かなくて良いんだよ

296:デフォルトの名無しさん
18/06/26 07:01:33.06 tL55F/sw0.net
H8:EEPMOV

297:デフォルトの名無しさん
18/07/01 01:54:22.43 WAYB1PLl0.net
すいません質問です
C言語の勉強をしようと思っているのですがIDE?というのが沢山ありすぎてどれを選べばいいのか分かりません!
迷える子羊に何卒ご教授下さいませ・・・

298:デフォルトの名無しさん
18/07/01 02:07:14.10 8/sCKaWm0.net
>>290
MSVC(VS)
沢山あるってのがよく分からないが、「入門用」とかいうのは全てゴミだから止めとけ

299:デフォルトの名無しさん
18/07/01 02:08:06.13 T+EQOOQd0.net
>>290
WindowsならVisual Studio Community
LinuxならEclipse CDT
Macなら標準のXCode
最初はIDE使わないでテキストエディタでやるのがいいとは思うがね

300:デフォルトの名無しさん
18/07/01 02:21:34.53 8/sCKaWm0.net
>>290
> 最初はIDE使わないでテキストエディタでやるのがいいとは思うがね (>>292)
これは絶対無いから止めとけ。
環境整備は初心者では無理なので、もし先生がいるのならIDEの立ち上げまではやってもらえ。
そして最初からIDEを使って、ブレークポイント貼りまくってステップ実行し、
納得いくまで変数をウオッチしろ。
C#のIDEなら文法エラーはサジェストが出てOK押すだけで治る。
(C系でそこまでやってくれるものがあるのかは知らん)
括弧の対応すらしてくれないテキストエディタなんて、
今時原稿用紙と手書きで草案を練れ、というようなもの。
勿論それが合う人もいるが、普通はないよ。

301:デフォルトの名無しさん
18/07/01 02:37:32.75 TDXiV/Pp0.net
IDEもよくわからん状態からCをやるのはよした方がいいと思うけどなあ

302:デフォルトの名無しさん
18/07/01 02:42:30.52 8/sCKaWm0.net
>>294
これはその通り。Cは入門用の言語ではない。
Cしかなかった昔ならさておき、今Cから始める必要はない。

303:デフォルトの名無しさん
18/07/01 02:51:14.35 aoQiIM1T0.net
>>290
IDEでクエスチョンがつくということは、プログラミング初心者と見た。もしそうなら、Cはオススメしない。もっといい言語がたくさんあるので、プログラミングがどういったものであるかを、他の言語でざっくり掴んでから、Cに取り組むことをお勧めする。
その頃には、IDEがなんであるか、どのIDEが自分に向いているかは、もうわかっているはずだ。
どうしてもCに今すぐ取り掛からなければならないという事情があるなら、
MFCを使わなくてはならないなら、visual studio。
そうでなければ、またはターゲットがWindowsでなければ、Eclipse
どちらにせよ、タップリ不幸になれるので覚悟すること。

304:デフォルトの名無しさん
18/07/01 03:12:41.99 WAYB1PLl0.net
>>291-296
皆様遅い時間なのに丁寧に答えて下さり感激の至りですありがとうございます
C言語を勉強しようと思っているのは使う予定があるからなんですすいません・・・
取り敢えず教えてもらったものDLして勉強します、重ね重ねありがとうございます!

305:デフォルトの名無しさん
18/07/01 03:22:52.22 8/sCKaWm0.net
>>297
> 使う予定があるから
こんなところで聞かずに先生(先輩/上司)に聞け。
IDEの善し悪しも自分で判断出来ない奴が自分だけで「使う」つもりなら事故るから止めとけ。

306:デフォルトの名無しさん
18/07/01 07:33:37.83 VIP13YQk0.net
Visual StudioにもLinuxターゲットがある。

307:デフォルトの名無しさん
18/07/01 08:01:39.26 Bxv8fbGo0.net
ターゲットの問題ではなくて動作環境の問題だろ
LinuxにVisualStudioは入れられないよ

308:デフォルトの名無しさん
18/07/01 08:04:14.93 VIP13YQk0.net
じゃあWSL使えば。

309:デフォルトの名無しさん
18/07/01 08:09:46.71 Bxv8fbGo0.net
何を言ってんだ?
WSLはWindowsだろ

310:デフォルトの名無しさん
18/07/01 08:19:16.03 VIP13YQk0.net
Windowsのほうがいいし。

311:デフォルトの名無しさん
18/07/01 08:40:05.74 Bxv8fbGo0.net
いい悪いではなくてただの事実
自分もVisualStudioは使っているよ
Windows環境では最良のIDEだと思ってる

312:デフォルトの名無しさん
18/07/01 11:33:42.78 s3Ywi94+0.net
ポエムや日記用にもテキストエディタの2〜3は入れてていいんじゃないの
それとコマンドプロンプトの併用も考えてるんじゃない
今の時代の「C言語をやる初心者」は、CUIを知らないんだよ
コマンドを使ってみないと、何を何のために作ってるか分からなくなる
巷で言うスマホの「アプリ」とかのGUIじゃなくて、圧倒的に古いCUIなんだから、今の若いモンには明らかに異質なものを作らせるんだよ
出来上がってくるソフトウェアは「黒い窓」なる謎の儀式でしか動かない極めつけの謎だ

313:デフォルトの名無しさん
18/07/01 12:41:57.93 8/sCKaWm0.net
つかそもそもEclipseっていいのか?
あれ、Linuxだと他選択肢がないから使われてるだけでは?
Cで使ったことはないが、Windows/NetBeans/PHPはだいぶ酷かったぞ。
もっさりしてるし、不安定だし。
この組み合わせが最悪なだけかもしれんが。
そして一応EclipseとNetBeansは検討対象らしいからな。
(俺的には比較するまでもなくVS>>>NetBeans)
VSとEclipse両方使っている奴いる?いたら感想を。

314:デフォルトの名無しさん
18/07/01 14:04:36.18 iXNUK265M.net
今のところvsと肩を並べられるIDEなんてないので当然eclipseもvsより劣るわけだが、
リファクタリング機能だけは圧倒的にeclipseのほうが優秀だった。
独自環境用の多数のIDEがオープンソースのeclipseから派生して作成されてるので、個々に使い方を覚えなくていいのもメリットかもしれない。
使い始めた頃はプロジェクトとビルドルールの管理と、日本語が独特なのが、取っ付きにくかったかな。
まあ言いたかったことは、vscode輝け

315:デフォルトの名無しさん
18/07/01 14:34:44.13 8/sCKaWm0.net
>>307
> リファクタリング機能だけは圧倒的にeclipseのほうが優秀だった。
それってCについてだよな。MSはVSについてはC#しかやる気出して無いから。なお、
Q. どうしてVC++のエディタはC#に比べて糞なのですか
A. だってお前らどうせemacsとか使ってエディタ機能使わないじゃん(なお公式)
だったはず。
そのとき、「え?そんなに違うんか?」と思って試し、その差に愕然とした覚えがある。
俺は最新環境を使ってはいないが、最新でもだいぶ見劣りしたと記憶している。
リファクタリング機能とかはユーザがアドオン書けた方がいいから、
それもあってVSCodeなのだろうね。

316:デフォルトの名無しさん
18/07/01 16:25:12.59 skMhceRea.net
Cぐらいならvimだけで十分だと思うがな

317:デフォルトの名無しさん
18/07/01 16:35:43.45 jK3pbtIRa.net
まずvimの操作を覚えて、開発するならそれなりのプラグイン入れなきゃならないんですがそれは

318:デフォルトの名無しさん
18/07/01 16:45:23.34 skMhceRea.net
ブラグインなぞ不要

319:デフォルトの名無しさん
18/07/01 17:12:51.78 KJj1sYCg0.net
仕事や学校でCを使う予定があるなら、
現場で使ってる開発環境に合わせるのが最善だろう。
IDEの優劣よりも優先されるんじゃないかな。
今のご時世にCに関してまったくの素人だと、
Cを使うのにIDEが必須と勘違いしてる可能性もあったり。
任意のテキストエディタで.cファイルを打ち込んで
コマンドラインでコンパイル、実行という手順が
紹介されてない入門書や入門サイトがあるかも。

320:デフォルトの名無しさん
18/07/01 17:13:26.42 8/sCKaWm0.net
>>311
それはさすがに老害の発想だぜ。
今時のemacsはインテリセンスも出るし、
flyCheckで文法エラーもリアルタイムで表示される。
お前はそういうの知らずに言ってるだろ。
(なお、vimも同様だったはず)
最終的にはそういうのがうざくなって色々切ったりするけど、
俺は初心者こそIDE(というかゴテゴテの環境)でスタートすべきだと思ってる。
大体において、
「動きません。でも私のコードは完璧です。これはIDEのバグですか」と言ってくるんだから、
「ブレークポイントを全部の行に置いてループも1回ずつステップ実行して確認して死ね」
と返せないと意味無いだろ。

321:デフォルトの名無しさん
18/07/01 17:22:47.54 8/sCKaWm0.net
>>312
> 紹介されてない入門書や入門サイトがあるかも。
VSがそうですが何か?(なおC++)
URLリンク(msdn.microsoft.com)
てかマジな話、VSで閉じていいのならそんな知識いらんて。

> 現場で使ってる開発環境に合わせるのが最善だろう。
> IDEの優劣よりも優先されるんじゃないかな。
これはその通りだが。

322:デフォルトの名無しさん
18/07/02 00:22:55.41 MZb/U4ur0.net
>>306
>つかそもそもEclipseっていいのか?
>あれ、Linuxだと他選択肢がないから使われてるだけでは?
組込みだとマイコンのメーカーのIDE(コンパイラ)が
EclipseベースなIDEな事があるから
VSではなくEclipseに馴れるって意味で選択する意味はあるかな
実際組込み現場でCでの開発想定したこの書籍だと
Eclipseで開発する事を想定して書かれてる
URLリンク(amzn.asia)

あと余談だけど今さらvimだのemacsだの時代遅れじゃね?
マルチプラットフォームで動くVSCodeやAtom選択した方が
学習コストも少なく高機能だと思うんだけど

323:デフォルトの名無しさん
18/07/02 01:24:09.53 Ael8RIVm0.net
>>315
> EclipseベースなIDEな事があるから
なるほどね。
> あと余談だけど今さらvimだのemacsだの時代遅れじゃね?
俺が勧めているわけではないが、「エディタ」という意味ではありだ。
「Emacsは100年のエディタだ」と言われるとおり、あれはマジで100年持つだろう。
そういう構造になっているし、実際今も余裕で現役だ。(Vimも同様)
最大の利点はDSLとしてのEmacsLispだ。(なお独立して使えるらしいが)
この点、VSCodeやAtomもOSSであり同レベルの拡張性を持ってはいるが、
ユーザーベースが違いすぎる。
今現在の状況なら、先に死ぬのはVSCodeやAtomの方だ。
学習コストなんて所詮慣れだし、数ヶ月もあれば問題ない。
当面使う予定がなければすぐに学ぶ必要性はないが、
時代遅れな事を肯定して欲しいのならそれは無理だ。
emacsとgdbは組み合わせて使うことは出来る。
ブレークポイント、変数等を表示出来るlispが提供されればそこそこ行けるはず。
もう既にあるかもしれんが。

324:デフォルトの名無しさん
18/07/02 20:45:33.13 egmwRQ41d.net
フォルダ一括コピーしたいです
c++だとファイルコピーにはCopyFileなるものがあるみたいなのだけどそれはフォルダのコピーはできないようなので、
他のものを探してたらSHFileStructでフォルダまるごとコピーができると知りました
これって再帰的に中身まで見てくれるのか見てくれないのか調べてたのですがわからなかったので
再帰的にコピーしてくれるか否か教えてほしいです

325:デフォルトの名無しさん
18/07/02 20:57:38.07 TkxJyVOaM.net
>>317
1つ目の回答みて
URLリンク(stackoverflow.com)

326:デフォルトの名無しさん
18/07/03 00:01:21.27 Dmx6jLMV0.net
>>317
そういうのはOSによって、あるいは使用するライブラリによってやり方が変わるから最低でもOSが何なのか書いて質問した方が良い。

327:デフォルトの名無しさん
18/07/03 01:16:11.07 F02z+tBP0.net
学生ならCLionも無料なのでおすすめ
VSCodeもまだ情報が少なめなものの悪くない

328:デフォルトの名無しさん
18/07/03 04:58:38.26 YXzbwHDm0.net
system("robocopy /? >tmp.txt");
system("notepad tmp.txt");

329:デフォルトの名無しさん
18/07/03 05:54:36.73 2wRh2EpV0.net
>>317
やって見りゃいいんじゃね?
>>319
>>317みてOSわからないボンクラは黙ってて

330:デフォルトの名無しさん
18/07/03 07:45:07.06 A8S8VjkX0.net
知らないなら書くなよ

331:デフォルトの名無しさん
18/07/04 21:52:51.64 gFgZc5FG0.net
HTQ

332:デフォルトの名無しさん
18/07/04 22:46:28.27 w3aVzChY0.net
やればわかる
やらない奴はいつまでたっても>>323みたいなボンクラなレスを返すだけ w

333:デフォルトの名無しさん
18/07/04 22:55:43.62 r5w7GwDZ0.net
迷わずいけよ!

334:デフォルトの名無しさん
18/07/04 23:02:16.01 dy7fWBja0.net
xcopyを呼び出すんじゃ駄目なのか?
車輪の何とかって気がするんだが

335:デフォルトの名無しさん
18/07/05 09:24:52.06 ppxwAApK0.net
SHFileOperation() はコピー先にフォルダが無い場合、再帰的にフォルダ作ってくれるね
ただ SHFILEOPSTRUCT の pTo に渡すパス文字列で
ディレクトリのセパレータが / はダメで \ じゃないと再帰がかかってくれない
D:\ 以下フォルダが無い状態で
pTo = "D:/aaa/bb/ccc/ddd";
SHFileOperation()
⇒ 「フォルダ ddd が作れない」  D:\ 以下のフォルダ状態は変わらず
pTo = "D:\\aaa\\bb\\ccc\\ddd";
SHFileOperation()
⇒ D:\aaa\bb\cc\ddd まで再起的にフォルダができる

336:デフォルトの名無しさん
18/07/10 12:40:53.64 PTerA0wX0.net
超初級で申し訳ないですが、以下のコードのどこに問題があるのか教えてください。
円の周長と面積を求めるものです。(半径は整数値で入力。)
コンパイルはできましたが、.exeファイルが実行不能状態です。

#include<stdio.h>
main()
{
int hankei;
double pi = 3.1415926535;
double enshu;
double menseki;
printf("半径を入力して下さい:\n");
scanf("%d",&hankei);
enshu = 2 * pi * hankei;
menseki = pi * hankei * hankei;
printf("半径%dの円の円周は%lfで、面積は%lfです", hankei, enshu, menseki);
}

337:デフォルトの名無しさん
18/07/10 12:51:36.15 lacLn2e2a.net
>>329
実行不能状態とはどのような状態か詳しく書くように。

338:デフォルトの名無しさん
18/07/10 13:17:53.02 G1Ywym5SM.net
>>329
ソースコードは問題ない。
戻り値型省略が警告になるくらい。
エスパーすると、
警告をエラー化するオプションが指定されていて、最新コードを実行しているつもりが古いコードを実行していたとか。
もしくはソースコードを直接実行しようとしているとか。

339:デフォルトの名無しさん
18/07/10 13:45:26.21 lacLn2e2a.net
ま、何れにしてもどういう環境で何をやってどうなったか詳細書いてくれんとわからんな。
WindowsでEclipse使ってる場合とLinuxでvimで入力してgccでコンパイルしている場合では答えが大幅に変わるし。
exeと書いてあるからWindowsだろうと予想することはできるが実はWindowsじゃなくてexeが作られるものと誤解しているだけなんてことも初心者ならありうるしな。

340:323
18/07/10 14:15:20.90 PTerA0wX0.net
Windows 10の開発者コマンドプロンプトでコンパイルしました。 cl (ファイル名).c
拡張子がexeのファイルが生成されました。
そのexeファイルをダブルクリックすると、マカフィーによって「脅威を隔離しました」というメッセージとともに削除されてしまいます。
何度やってもそうなります。

341:デフォルトの名無しさん
18/07/10 14:48:20.63 6oP6Hy+LM.net
知らぬ間に凶器を生み出してしまったんだね…
URLリンク(r.nikkei.com)
マカフィーを一時的に止めちゃえば?

342:デフォルトの名無しさん
18/07/10 14:51:13.47 jUw0TWzI0.net
マカフィーが止めなかったら人類はその瞬間、消滅していたかも知れない

343:デフォルトの名無しさん
18/07/10 15:35:28.40 c95ZcwpDa.net
この頃は単にコマンドプロンプトと呼ばずに頭に開発者って付くのか?

344:デフォルトの名無しさん
18/07/10 15:52:40.79 sLQCr7o90.net
コマンドプロンプト上で実行したらどうなる?
cl で実行ファイルを作ったら、そのままコマンドプロンプトで
実行ファイルの名前を打ってEnter、で動くと思うけど。
コンソールアプリケーションをダブルクリックで実行した場合、
scanf系の標準入力に必要なコンソールってどうなるんだっけ?

345:デフォルトの名無しさん
18/07/10 16:44:44.45 b+i389ju0.net
Windows10(17134.137) + VisualStudio2017(Ent15.7.4) の開発者コマンドプロンプトで確認してみたけど問題ない
URLリンク(i.imgur.com)

346:デフォルトの名無しさん
18/07/10 17:11:41.78 c95ZcwpDa.net
マカフィーのチェックがおかしいわけだな。
自宅のPCでマカフィー入ってるのあるから帰ったら試してみよう。

347:323
18/07/10 17:13:29.68 PTerA0wX0.net
>>334
いやいや、私はヤバいウイルスとかを作る技量はないので…
知らぬ間に作るなんてことは…
>>337
プロンプトで実行すると、長いエラーメッセージが出ます。
その場合もマカフィーが反応します。
マカフィーのせいなんですかあああああ…?
マカフィーを止めるのはなんか面倒です。

348:デフォルトの名無しさん
18/07/10 17:23:53.95 c95ZcwpDa.net
そういやマカフィーの創業者のジョン・マカフィーは壮絶な人生歩んでるのな。
知りたい人はWikipediaでジョン・マカフィーで検索してみな。

349:デフォルトの名無しさん
18/07/10 18:23:14.04 4twA9KsQ0.net
>>340
例外設定できんの

350:デフォルトの名無しさん
18/07/10 19:58:04.00 /C7aTWfLM.net
なんでマカフィーを後出ししたのか教えて
>>329では隠してたよね

351:デフォルトの名無しさん
18/07/10 20:29:17.07 csDUndKHa.net
このスレは超エスパーの常連が常駐していると聞いて

352:デフォルトの名無しさん
18/07/10 20:55:39.23 XZttgo620.net
今頃常連は君のPCの中で、あんなことこんなことしてるかも

353:デフォルトの名無しさん
2018/07/1


354:1(水) 02:42:31.00 ID:XTzeI4c20.net



355:323
18/07/11 12:17:16.91 Z7jbd2VW0.net
そんなことは普通にできますが,インターネット接続を切ったり入れたりもしなきゃいけないじゃないですか
それも簡単ですが,マカフィーのいたずらのせいでそんなことをいちいちやるのは…という意味です

356:デフォルトの名無しさん
18/07/11 12:19:33.60 F9Ul8eGQH.net
止めたついでにアンインストールするのがいいと思うよ。

357:デフォルトの名無しさん
18/07/11 12:23:38.80 ElMeoT060.net
プログラムを作成自体を犯罪者予備軍と見なしているのかな・・

358:デフォルトの名無しさん
18/07/11 12:33:49.60 /qmyOvYB0.net
使ってるのがwindows10ならもうウィルス対策ソフトなんて要らないよ。重くなるだけ。
windowsDefenderで十分。2つ入れてるとトラブルの元。

359:デフォルトの名無しさん
18/07/11 23:17:11.74 mjsZ1svma.net
C++でディレクトリ無かったら作る関数って何かあります?
LinuxのPOSIX系だと見つからんかった

360:デフォルトの名無しさん
18/07/12 00:42:26.88 gvbwsRPLM.net
>>351
man 2 mkdir

361:デフォルトの名無しさん
18/07/12 01:44:43.97 2elGYyrL0.net
>>340
マカフィー入った環境でやってみたけど普通に動いた。
但し、Cコンパイラは Cygwin の gcc だ。

362:デフォルトの名無しさん
18/07/12 02:21:13.11 9sO/Jh060.net
>>347
別に一時的に無効化するだけならネットを切る必要は無い
セキュリティ的にどうしても不安があるっていうならLANケーブル抜けばいい
それすら面倒ならパソコンを窓から投げ捨てろ

363:デフォルトの名無しさん
18/07/14 08:48:08.32 xV7EJA5wd.net
マカフィーのポリシーが気に入らないなら消せば

364:デフォルトの名無しさん
18/07/15 17:16:55.22 +OH6AID30.net
C言語で集合、和集合、積集合を実装したいのですが、正直アイデアが浮かびません。
どうすれば良いのでしょうか?
教えていただきたいです。

365:
18/07/15 17:20:53.28 0kASpcPE0.net
>>356
まず集合の要素を何にするか?
集合自体の表現をどうするか?
そこからスタートするべきだと思います
C++ スレリンク(tech板:33番)

366:デフォルトの名無しさん
18/07/15 18:24:43.00 yiVegLeV0.net
C++ちゃうやろ

367:さまよえる蟻人間
18/07/15 18:43:53.92 wAtjArzX0.net
C++のstd::setを参考にしない手はないな。
集合をデータとして保持したいなら、要素の個数と、動的配列かリストが必要になる。

368:さまよえる蟻人間
18/07/15 18:50:09.68 uEXuZg9md.net
集合は順序列の順序を無視したものと考えられる。
比較する場合は、ソート済みにしてから比較する必要がある。
多重集合ではない場合は変更の際に要素を単一化しないといけない。

369:デフォルトの名無しさん
18/07/15 18:57:55.11 chucpUaPM.net
setは赤黒木だけど、実装したことある奴いるの?俺はaddだけ実装して満足して諦めたよ。
hashtableのほうが遥かに簡単だからオススメ。
整列済みの配列も簡単でいいと思うよ。
でも一番楽なのは、ライブラリを拾ってくること。

370:さまよえる蟻人間
18/07/15 20:00:12.79 uEXuZg9md.net
std::unordered_set

371:デフォルトの名無しさん
18/07/15 23:33:22.03 ugn7dRUid.net
>>356
積集合の方が比較的簡単
和集合は同一要素であるかをどうやって判別するか
要素を構造体で表した時に
異なる構造体でも同一要素である判別が出来なくてはならないので
単純な例だと
複素数型と実数型と有理数型とcharとintとfloatとdoubleとか

372:デフォルトの名無しさん
18/07/15 23:57:35.35 yiVegLeV0.net
>>363
意味が全くわからんわ。
そもそも和集合も積集合も補集合考えたら手間が変わるはずないし。

373:デフォルトの名無しさん
18/07/15 23:59:45.37 ugn7dRUid.net
>>364
ああ、直積と勘違いした

374:デフォルトの名無しさん
18/07/16 00:10:17.99 RYaEyvned.net
型が限定されていれば簡単
(>>359>>362)
>>363みたいに、
いろんな型が混ざった和集合だと
いろいろと大変

375:デフォルトの名無しさん
18/07/16 00:41:17.49 JxE01Fj60.net
一般論で言えば、集合の実装はハッシュを実装することに限りなく等しい。
どんなオブジェクトであれ、シリアライズ(要は文字列化)できる。
そうすればハッシュで一意な比較的小さい非負整数の番号に写像できる。(←条件により、ここが難関になりうる。ハッシュを使わずに済む番号が用意されていればそれが最適)
逆写像も用意できる。
最大番号までの要素数を持つ整数配列で0/1で要素の有無を表現したものが一つの集合を表す。
2つの集合の和と積は0/1の|と&で表せる。
配列サイズと計算時間の節約にはビットマップ化すればok。

376:デフォルトの名無しさん
18/07/16 12:41:40.20 JYSC+BEod.net
視野の狭いアホ

377:
18/07/16 13:40:42.48 PLRcL5uS0.net
>>367
>ハッシュで一意な比較的小さい非負整数の番号に写像できる。
ハッシュ関数は一般に衝突するもの、と考えるものですが、範囲を小さくすれば特に…

378:デフォルトの名無しさん
18/07/16 13:45:32.02 GVNh7z7o0.net
ハッシュの逆写像て何よ

379:デフォルトの名無しさん
18/07/16 15:04:36.42 JxE01Fj60.net
>>368
広い視野で具体的な提案をどうぞ。
>>369
要素が固定なら完全ハッシュ関数が構成可能。
>>370
和集合とか積集合とか求めてもそこから要素リストが作れなければ無意味というだけ。これは逆写像を作ってるのと同じ。

380:デフォルトの名無しさん
18/07/16 16:32:35.47 ZuNymA1O0.net
>>356
ビット演算使えば良いのでは?
特に要素数が32とか64以下に収まるようなら今どきのPC用コンパイラならunsgnedのintやlongで行けるよ。
uint32tみたいなビット数保証するtypedefされた型使った方が良いけどね。

381:デフォルトの名無しさん
18/07/16 16:42:31.55 fNWu8+xrd.net
うわっ
また特殊な条件でしか使えない方法を
まあ>>356が悪いわけだけど

382:デフォルトの名無しさん
18/07/16 16:58:23.91 GVNh7z7o0.net
>>371
オペランドが入力されたら都度完全ハッシュを求めるの?
地味に和積集合計算するよりはるかにコスト高だろ…

383:デフォルトの名無しさん
18/07/16 17:09:01.83 fNWu8+xrd.net
全順序化が簡単か
効率的なハッシュが(簡単に)作れるか
想定する集合の大きさ
比較のコスト
ノードのデータサイズ
この辺が違うと適した実装が全く異なる
この辺をヒアリングするのが先と思う

384:デフォルトの名無しさん
18/07/16 20:33:05.89 xLJ3m8O+M.net
>>374
「要素が固定なら」と条件付き。よく読んでね。
そうじゃない場合は難関になりうることも言及ずみ。よく読んでね。
衝突してもハッシュ表は実装できるわけで、全順序化が不可能なわけではない。

385:デフォルトの名無しさん
18/07/16 20:35:21.92 xLJ3m8O+M.net
>>375
これ。
これら含めて最大限一般化したら>>367になるよね。

386:デフォルトの名無しさん
18/07/16 21:05:16.49 GVNh7z7o0.net
>>376
何に対して固定なのか、いつ固定されるのか、稚拙な日本語から読み取れと?
それに>>367にはそんな条件は書いてないぞ。にもかかわらず、ハッシュから写像ができると書いてある。意味不明すぎるわ。

387:デフォルトの名無しさん
18/07/16 21:29:45.38 XBIjWYki0.net
>>377
ならねーよ
>>361も書いてるけどこの手のやつの定番は赤黒木とかB-Tree
ハッシュはデータ量が見込めないとハッシュテーブルサイズが決められないから使い辛い

388:デフォルトの名無しさん
18/07/16 21:50:26.80 sxU6ARMDM.net
>>361
作ったことあるけど使えない程度に遅かったわ
Cで赤黒木ならLinuxかfreeBSDから拝借するのがよさそう

389:デフォルトの名無しさん
18/07/16 21:56:55.25 r56ZRtuEM.net
c++のmapとsetの実装アルゴリズムだぜ。
検索速度はハッシュテーブルに劣るけど、使えないほど遅いってことはないだろ。

390:デフォルトの名無しさん
18/07/16 22:18:00.48 d44IRZCy0.net
C言語初心者です。
typedef struct{
int tate;
int yoko;
double *mat;
} Mat;
void read(int x,int y,Mat *a){
for(int i=0;i<x;i++){
for(int j=0;j<y;j++){
printf("[%d][%d]->",i+1,j+1);
scanf("%lf",&a->mat[i][j]);
}
printf("\n");
}
return;
}
プログラムの一部を抜粋したものなのですが、これでコンパイルすると
subscripted value is neither array nor pointer
というエラーが出てしまいます。
二次元配列はポインタで表せないものなのでしょうか?

391:デフォルトの名無しさん
18/07/16 22:23:31.47 d44IRZCy0.net
sageをつけ忘れました
申し訳ございません。

392:デフォルトの名無しさん
18/07/16 22:43:27.11 BgE9oE4s0.net
>>382
メモリ空間は1次元だから。
arr[y][x]は*(arr+y*WIDTH+x)と同じ。WIDTHがわからないとできない。

393:デフォルトの名無しさん
18/07/16 23:01:36.27 GVNh7z7o0.net
>>382
matがdouble型へのポインタだからだよ。
結果mat[i]はdouble型になり、mat[i][j]はdouble型に[j]を付けたことになるので、配列でもポインタでもないのに[]つけるなって怒られてる。
きっとmatのメモリ確保は
mat = malloc(sizeof(double) * tate * yoko);
みたいにやってるだろうから、i列j行目にアクセスするときは
&a->mat[i + j * yoko]
みたいにしないといけない。
あと、上の例ならjを外側、iを内側のforにしたほうが最適化されやすいと思うよ

394:デフォルトの名無しさん
18/07/17 00:14:58.01 TUtIYHCtM.net
>>381
作りが悪くて目標に届かなかっただけ
100万件のinsertに1秒程度が目標だったけど2.5秒ぐらいだった

395:デフォルトの名無しさん
18/07/17 00:50:16.45 j9lU977L0.net
>>382です
お二人とも丁寧に教えていただきありがとうございます。
>>384さんの方法で改良してみたのですが複数のMat構造体を作り,tateとyokoの値のそれぞれ別にしたときにプログラム実行中に入力が強制終了されてしまうのですが、配列の作り方に何か不都合があるのでしょうか

396:デフォルトの名無しさん
18/07/17 01:14:22.91 ZzFa01D50.net
>>387
あるあるネタだね。
何処かでx/y、i/j、tate/yokoが逆になってる。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

1997日前に更新/274 KB
担当:undef