C言語なら俺に聞け 146

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 839f-AnMQ)
垢版 |
2018/04/30(月) 04:47:37.50ID:XX4FB8lc0
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/

C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf

C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html

C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/

JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/


C言語なら俺に聞け 144
https://mevius.5ch.net/test/read.cgi/tech/1514025223/

次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512
-
※前スレ
C言語なら俺に聞け 145
http://mevius.5ch.net/test/read.cgi/tech/1519046038/
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
318デフォルトの名無しさん (ワッチョイ 45fa-2e90)
垢版 |
2018/07/04(水) 21:52:51.64ID:gFgZc5FG0
HTQ
2018/07/04(水) 22:46:28.27ID:w3aVzChY0
やればわかる
やらない奴はいつまでたっても>>317みたいなボンクラなレスを返すだけ w
2018/07/04(水) 22:55:43.62ID:r5w7GwDZ0
迷わずいけよ!
2018/07/04(水) 23:02:16.01ID:dy7fWBja0
xcopyを呼び出すんじゃ駄目なのか?
車輪の何とかって気がするんだが
2018/07/05(木) 09:24:52.06ID:ppxwAApK0
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 まで再起的にフォルダができる
2018/07/10(火) 12:40:53.64ID:PTerA0wX0
超初級で申し訳ないですが、以下のコードのどこに問題があるのか教えてください。
円の周長と面積を求めるものです。(半径は整数値で入力。)
コンパイルはできましたが、.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);

}
324デフォルトの名無しさん (アウアウカー Sa1b-tqMh)
垢版 |
2018/07/10(火) 12:51:36.15ID:lacLn2e2a
>>323
実行不能状態とはどのような状態か詳しく書くように。
2018/07/10(火) 13:17:53.02ID:G1Ywym5SM
>>323
ソースコードは問題ない。
戻り値型省略が警告になるくらい。

エスパーすると、
警告をエラー化するオプションが指定されていて、最新コードを実行しているつもりが古いコードを実行していたとか。

もしくはソースコードを直接実行しようとしているとか。
326デフォルトの名無しさん (アウアウカー Sa1b-tqMh)
垢版 |
2018/07/10(火) 13:45:26.21ID:lacLn2e2a
ま、何れにしてもどういう環境で何をやってどうなったか詳細書いてくれんとわからんな。
WindowsでEclipse使ってる場合とLinuxでvimで入力してgccでコンパイルしている場合では答えが大幅に変わるし。
exeと書いてあるからWindowsだろうと予想することはできるが実はWindowsじゃなくてexeが作られるものと誤解しているだけなんてことも初心者ならありうるしな。
2018/07/10(火) 14:15:20.90ID:PTerA0wX0
Windows 10の開発者コマンドプロンプトでコンパイルしました。 cl (ファイル名).c
拡張子がexeのファイルが生成されました。

そのexeファイルをダブルクリックすると、マカフィーによって「脅威を隔離しました」というメッセージとともに削除されてしまいます。
何度やってもそうなります。
2018/07/10(火) 14:48:20.63ID:6oP6Hy+LM
知らぬ間に凶器を生み出してしまったんだね…
https://r.nikkei.com/article/DGXNASFK2001L_Q1A620C1000000

マカフィーを一時的に止めちゃえば?
2018/07/10(火) 14:51:13.47ID:jUw0TWzI0
マカフィーが止めなかったら人類はその瞬間、消滅していたかも知れない
330デフォルトの名無しさん (アウアウカー Sa1b-tqMh)
垢版 |
2018/07/10(火) 15:35:28.40ID:c95ZcwpDa
この頃は単にコマンドプロンプトと呼ばずに頭に開発者って付くのか?
2018/07/10(火) 15:52:40.79ID:sLQCr7o90
コマンドプロンプト上で実行したらどうなる?
cl で実行ファイルを作ったら、そのままコマンドプロンプトで
実行ファイルの名前を打ってEnter、で動くと思うけど。

コンソールアプリケーションをダブルクリックで実行した場合、
scanf系の標準入力に必要なコンソールってどうなるんだっけ?
2018/07/10(火) 16:44:44.45ID:b+i389ju0
Windows10(17134.137) + VisualStudio2017(Ent15.7.4) の開発者コマンドプロンプトで確認してみたけど問題ない
https://i.imgur.com/SZMlQ7g.png
333デフォルトの名無しさん (アウアウカー Sa1b-tqMh)
垢版 |
2018/07/10(火) 17:11:41.78ID:c95ZcwpDa
マカフィーのチェックがおかしいわけだな。
自宅のPCでマカフィー入ってるのあるから帰ったら試してみよう。
2018/07/10(火) 17:13:29.68ID:PTerA0wX0
>>328
いやいや、私はヤバいウイルスとかを作る技量はないので…
知らぬ間に作るなんてことは…

>>331
プロンプトで実行すると、長いエラーメッセージが出ます。
その場合もマカフィーが反応します。

マカフィーのせいなんですかあああああ…?
マカフィーを止めるのはなんか面倒です。
335デフォルトの名無しさん (アウアウカー Sa1b-tqMh)
垢版 |
2018/07/10(火) 17:23:53.95ID:c95ZcwpDa
そういやマカフィーの創業者のジョン・マカフィーは壮絶な人生歩んでるのな。
知りたい人はWikipediaでジョン・マカフィーで検索してみな。
2018/07/10(火) 18:23:14.04ID:4twA9KsQ0
>>334
例外設定できんの
2018/07/10(火) 19:58:04.00ID:/C7aTWfLM
なんでマカフィーを後出ししたのか教えて
>>323では隠してたよね
338デフォルトの名無しさん (アウアウカー Sa1b-tqMh)
垢版 |
2018/07/10(火) 20:29:17.07ID:csDUndKHa
このスレは超エスパーの常連が常駐していると聞いて
2018/07/10(火) 20:55:39.23ID:XZttgo620
今頃常連は君のPCの中で、あんなことこんなことしてるかも
2018/07/11(水) 02:42:31.00ID:XTzeI4c20
>>334
一時的に無効にするのはそんなに面倒じゃないよ
クリック数回でできるレベル
それすら出来ないなら金で人雇って問題を解決してもらうしかない
2018/07/11(水) 12:17:16.91ID:Z7jbd2VW0
そんなことは普通にできますが,インターネット接続を切ったり入れたりもしなきゃいけないじゃないですか
それも簡単ですが,マカフィーのいたずらのせいでそんなことをいちいちやるのは…という意味です
2018/07/11(水) 12:19:33.60ID:F9Ul8eGQH
止めたついでにアンインストールするのがいいと思うよ。
2018/07/11(水) 12:23:38.80ID:ElMeoT060
プログラムを作成自体を犯罪者予備軍と見なしているのかな・・
2018/07/11(水) 12:33:49.60ID:/qmyOvYB0
使ってるのがwindows10ならもうウィルス対策ソフトなんて要らないよ。重くなるだけ。
windowsDefenderで十分。2つ入れてるとトラブルの元。
2018/07/11(水) 23:17:11.74ID:mjsZ1svma
C++でディレクトリ無かったら作る関数って何かあります?
LinuxのPOSIX系だと見つからんかった
2018/07/12(木) 00:42:26.88ID:gvbwsRPLM
>>345
man 2 mkdir
2018/07/12(木) 01:44:43.97ID:2elGYyrL0
>>334
マカフィー入った環境でやってみたけど普通に動いた。
但し、Cコンパイラは Cygwin の gcc だ。
2018/07/12(木) 02:21:13.11ID:9sO/Jh060
>>341
別に一時的に無効化するだけならネットを切る必要は無い
セキュリティ的にどうしても不安があるっていうならLANケーブル抜けばいい
それすら面倒ならパソコンを窓から投げ捨てろ
2018/07/14(土) 08:48:08.32ID:xV7EJA5wd
マカフィーのポリシーが気に入らないなら消せば
350デフォルトの名無しさん (ワッチョイ ead2-4lKT)
垢版 |
2018/07/15(日) 17:16:55.22ID:+OH6AID30
C言語で集合、和集合、積集合を実装したいのですが、正直アイデアが浮かびません。
どうすれば良いのでしょうか?
教えていただきたいです。
2018/07/15(日) 17:20:53.28ID:0kASpcPE0
>>350
まず集合の要素を何にするか?
集合自体の表現をどうするか?
そこからスタートするべきだと思います
C++ https://mevius.5ch.net/test/read.cgi/tech/1434079972/33
2018/07/15(日) 18:24:43.00ID:yiVegLeV0
C++ちゃうやろ
2018/07/15(日) 18:43:53.92ID:wAtjArzX0
C++のstd::setを参考にしない手はないな。
集合をデータとして保持したいなら、要素の個数と、動的配列かリストが必要になる。
2018/07/15(日) 18:50:09.68ID:uEXuZg9md
集合は順序列の順序を無視したものと考えられる。
比較する場合は、ソート済みにしてから比較する必要がある。
多重集合ではない場合は変更の際に要素を単一化しないといけない。
2018/07/15(日) 18:57:55.11ID:chucpUaPM
setは赤黒木だけど、実装したことある奴いるの?俺はaddだけ実装して満足して諦めたよ。

hashtableのほうが遥かに簡単だからオススメ。
整列済みの配列も簡単でいいと思うよ。

でも一番楽なのは、ライブラリを拾ってくること。
2018/07/15(日) 20:00:12.79ID:uEXuZg9md
std::unordered_set
2018/07/15(日) 23:33:22.03ID:ugn7dRUid
>>350
積集合の方が比較的簡単
和集合は同一要素であるかをどうやって判別するか
要素を構造体で表した時に
異なる構造体でも同一要素である判別が出来なくてはならないので

単純な例だと
複素数型と実数型と有理数型とcharとintとfloatとdoubleとか
2018/07/15(日) 23:57:35.35ID:yiVegLeV0
>>357
意味が全くわからんわ。
そもそも和集合も積集合も補集合考えたら手間が変わるはずないし。
2018/07/15(日) 23:59:45.37ID:ugn7dRUid
>>358
ああ、直積と勘違いした
2018/07/16(月) 00:10:17.99ID:RYaEyvned
型が限定されていれば簡単
(>>353>>356)

>>357みたいに、
いろんな型が混ざった和集合だと
いろいろと大変
2018/07/16(月) 00:41:17.49ID:JxE01Fj60
一般論で言えば、集合の実装はハッシュを実装することに限りなく等しい。

どんなオブジェクトであれ、シリアライズ(要は文字列化)できる。
そうすればハッシュで一意な比較的小さい非負整数の番号に写像できる。(←条件により、ここが難関になりうる。ハッシュを使わずに済む番号が用意されていればそれが最適)
逆写像も用意できる。
最大番号までの要素数を持つ整数配列で0/1で要素の有無を表現したものが一つの集合を表す。
2つの集合の和と積は0/1の|と&で表せる。
配列サイズと計算時間の節約にはビットマップ化すればok。
2018/07/16(月) 12:41:40.20ID:JYSC+BEod
視野の狭いアホ
2018/07/16(月) 13:40:42.48ID:PLRcL5uS0
>>361
>ハッシュで一意な比較的小さい非負整数の番号に写像できる。

ハッシュ関数は一般に衝突するもの、と考えるものですが、範囲を小さくすれば特に…
2018/07/16(月) 13:45:32.02ID:GVNh7z7o0
ハッシュの逆写像て何よ
2018/07/16(月) 15:04:36.42ID:JxE01Fj60
>>362
広い視野で具体的な提案をどうぞ。

>>363
要素が固定なら完全ハッシュ関数が構成可能。

>>364
和集合とか積集合とか求めてもそこから要素リストが作れなければ無意味というだけ。これは逆写像を作ってるのと同じ。
366デフォルトの名無しさん (ワッチョイ 6d9f-kMqh)
垢版 |
2018/07/16(月) 16:32:35.47ID:ZuNymA1O0
>>350
ビット演算使えば良いのでは?
特に要素数が32とか64以下に収まるようなら今どきのPC用コンパイラならunsgnedのintやlongで行けるよ。
uint32tみたいなビット数保証するtypedefされた型使った方が良いけどね。
2018/07/16(月) 16:42:31.55ID:fNWu8+xrd
うわっ
また特殊な条件でしか使えない方法を

まあ>>350が悪いわけだけど
2018/07/16(月) 16:58:23.91ID:GVNh7z7o0
>>365
オペランドが入力されたら都度完全ハッシュを求めるの?
地味に和積集合計算するよりはるかにコスト高だろ…
2018/07/16(月) 17:09:01.83ID:fNWu8+xrd
全順序化が簡単か
効率的なハッシュが(簡単に)作れるか
想定する集合の大きさ
比較のコスト
ノードのデータサイズ

この辺が違うと適した実装が全く異なる
この辺をヒアリングするのが先と思う
2018/07/16(月) 20:33:05.89ID:xLJ3m8O+M
>>368
「要素が固定なら」と条件付き。よく読んでね。
そうじゃない場合は難関になりうることも言及ずみ。よく読んでね。
衝突してもハッシュ表は実装できるわけで、全順序化が不可能なわけではない。
2018/07/16(月) 20:35:21.92ID:xLJ3m8O+M
>>369
これ。

これら含めて最大限一般化したら>>361になるよね。
2018/07/16(月) 21:05:16.49ID:GVNh7z7o0
>>370
何に対して固定なのか、いつ固定されるのか、稚拙な日本語から読み取れと?
それに>>361にはそんな条件は書いてないぞ。にもかかわらず、ハッシュから写像ができると書いてある。意味不明すぎるわ。
2018/07/16(月) 21:29:45.38ID:XBIjWYki0
>>371
ならねーよ
>>355も書いてるけどこの手のやつの定番は赤黒木とかB-Tree
ハッシュはデータ量が見込めないとハッシュテーブルサイズが決められないから使い辛い
2018/07/16(月) 21:50:26.80ID:sxU6ARMDM
>>355
作ったことあるけど使えない程度に遅かったわ

Cで赤黒木ならLinuxかfreeBSDから拝借するのがよさそう
2018/07/16(月) 21:56:55.25ID:r56ZRtuEM
c++のmapとsetの実装アルゴリズムだぜ。
検索速度はハッシュテーブルに劣るけど、使えないほど遅いってことはないだろ。
376デフォルトの名無しさん (ワッチョイ 753c-L1xz)
垢版 |
2018/07/16(月) 22:18:00.48ID:d44IRZCy0
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
というエラーが出てしまいます。
二次元配列はポインタで表せないものなのでしょうか?
2018/07/16(月) 22:23:31.47ID:d44IRZCy0
sageをつけ忘れました
申し訳ございません。
2018/07/16(月) 22:43:27.11ID:BgE9oE4s0
>>376
メモリ空間は1次元だから。
arr[y][x]は*(arr+y*WIDTH+x)と同じ。WIDTHがわからないとできない。
2018/07/16(月) 23:01:36.27ID:GVNh7z7o0
>>376
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にしたほうが最適化されやすいと思うよ
2018/07/17(火) 00:14:58.01ID:TUtIYHCtM
>>375
作りが悪くて目標に届かなかっただけ
100万件のinsertに1秒程度が目標だったけど2.5秒ぐらいだった
2018/07/17(火) 00:50:16.45ID:j9lU977L0
>>376です
お二人とも丁寧に教えていただきありがとうございます。
>>378さんの方法で改良してみたのですが複数のMat構造体を作り,tateとyokoの値のそれぞれ別にしたときにプログラム実行中に入力が強制終了されてしまうのですが、配列の作り方に何か不都合があるのでしょうか
2018/07/17(火) 01:14:22.91ID:ZzFa01D50
>>381
あるあるネタだね。
何処かでx/y、i/j、tate/yokoが逆になってる。
2018/07/17(火) 03:42:30.44ID:ZJqMOJYT0
Ruby のハッシュでは、データ数と共に、バケット数を増やしていく。
バケット数は、2 の累乗の次に現れる素数。
2^n + a, 2 <= n <= 30

8 + 3 = 11
16 + 3 = 19
32 + 5 = 37
64 + 3 = 67
128 + 3 = 131
256 + 27 = 283
512 + 9 = 521

データ数が、バケット数の5倍を超えると、ハッシュが再構成される。
再構成時には、極端に遅くなる

11 * 5 = 55 だから、データ数が56 個になると、バケット数が19 になる。
19 * 5 = 95 だから、データ数が96 個になると、バケット数が37 になる
2018/07/17(火) 04:09:19.94ID:ZJqMOJYT0
AVL では、左右部分木の高さの差を、1 以内にしなければならないから、
2 になると、木の回転・縮約など、再構成をしなければならない。
つまり、しょっちゅう再構成が起こるので、遅くなる

赤黒木では、左右部分木の高さの差を2 倍以内にしたから、再構成が起こりにくい。
左が10 なら、右は20 まで、再構成が起こらない

タスクスケジューラーに使われる

例えば、100個のスリープしているタスクがある所に、
木に実行するタスクを追加して、重みに従ってソートすると、
追加したタスクが選ばれて、木から削除される

つまり、ほとんどの葉の順位が変わらなくて、
追加した葉が、すぐに削除されるようなものに適している
385デフォルトの名無しさん (ワッチョイ 753c-KCFg)
垢版 |
2018/07/17(火) 21:50:50.91ID:j9lU977L0
makefileってPowerShellで作れないとかないですか?
386デフォルトの名無しさん (アウアウカー Sa55-jzog)
垢版 |
2018/07/18(水) 13:02:52.94ID:9IEVAZpRa
>>385
君が何を言わんとしているのかがよくわからない
2018/07/18(水) 13:22:02.69ID:OuA1chkMd
わからないならかくなあほ
388デフォルトの名無しさん (アウアウカー Sa55-jzog)
垢版 |
2018/07/18(水) 13:27:22.37ID:9IEVAZpRa
>>387
あれで人に言葉が通じていると思い込んでる可能性があるから書くべきだろう
2018/07/18(水) 15:13:21.80ID:rBfwKW3R0
>>385
作れますよ
2018/07/22(日) 17:00:55.76ID:QT86rkZL0
なんとなく、コマンド行をタブで始めてなくて(スペースで空白を作ってて)、
makeがエラー出してるような気がするなぁ。
エディタのTab→スペース自動変換が効いてるとか。

PowerShellとは直接関係なくて。
2018/07/23(月) 07:43:37.05ID:4YnpLRT90
C++ C言語 C#の初心者用スレはないんですか?
探してみたけどそれらしきスレが見当たらないです
2018/07/23(月) 08:25:03.57ID:XREcIsoOM
>>391
まずはどうやって探したのか聞こうか
2018/07/23(月) 18:37:31.75ID:4YnpLRT90
>>392
まずスレッド一覧を開いてCTRL+FでC++と入れて検索しました
一応それらしき所を見つけたんですが書き込んだ瞬間変なおっさんに噛みつかれたので
初心者スレじゃないのかな。。。と。
入門にあったスレはないでしょうか
394デフォルトの名無しさん (ワッチョイ 979f-lcCj)
垢版 |
2018/07/24(火) 00:16:29.41ID:jxAZ77iY0
無ければ作ったら良い
2018/07/24(火) 00:25:40.41ID:WnIMuw3FM
初心者歓迎なのと甘えた初心者に手とり足とり教えるのとは違うよ
396デフォルトの名無しさん (スップ Sd3f-3g7x)
垢版 |
2018/07/24(火) 10:50:38.33ID:0p5SDr2Gd
回答者も甘えてる奴がほとんどだしな
2018/07/24(火) 12:49:34.60ID:AIbS+cPKM
初心者といいつつそれ以前だったりするから
2018/07/24(火) 12:52:10.55ID:jy7p1ZdAd
回答する気が無いヤツは黙ってろ
目障り
2018/07/24(火) 22:27:17.58ID:yuwuYFDqM
>>393
ここでの『初心者』はANSI Cの規格を読み込んでいること前提
プログラム未経験者は取り合えず柴田茫洋の明解C言語を読め
2018/07/24(火) 22:55:24.02ID:0yPjFIBM0
回答する気が無いヤツは黙ってろ
目障り
2018/07/25(水) 14:04:28.05ID:rhtXSHsm0
明解C言語は分かりにくいからやめとけ
苦Cの方がいい
402デフォルトの名無しさん (アウアウカー Saab-GY9v)
垢版 |
2018/07/25(水) 15:50:06.17ID:rOB4O81ba
明解と
書いてる方が
不明解
403デフォルトの名無しさん (ブーイモ MMbf-4pMd)
垢版 |
2018/07/25(水) 18:17:36.85ID:LRuCLCqQM
今からC言語覚えて何に使うの?
2018/07/25(水) 18:38:39.52ID:ru0lrBQYM
デバドラを書く
低速言語のボトルネックをカバーする
2018/07/25(水) 19:01:18.88ID:WBw1LCSkd
こういう連続線をクリックで描きたいなんか参考になる本だとかサイトってありませんか?
https://i.imgur.com/Emj85bk.jpg
2018/07/25(水) 19:07:02.74ID:h5CHP+XR0
>>405
それをCで書こうって考えている?
2018/07/25(水) 19:11:06.73ID:WkyhwwwQ0
>>403
小規模マイコンのプログラミング
とか
408デフォルトの名無しさん (アウアウカー Saab-GY9v)
垢版 |
2018/07/25(水) 19:19:25.92ID:ekeRKo17a
>>405
環境は?
OSやコンパイラは?
2018/07/25(水) 20:53:24.83ID:IVngiw360
>>407
揚げ足とるわけじゃないけれど
なんで小規模マイコン限定?
2018/07/25(水) 20:53:47.05ID:IVngiw360
大規模は違うの?って意味ね
2018/07/25(水) 20:57:49.18ID:E4aNPZoQ0
まずint(4バイトとする)とmalloc(4)の違い教えて
話しはそれからだ
2018/07/25(水) 21:01:13.33ID:Gtkf0v1Td
>>411
mallocは使い終わったらfreeで解放しないといけない。
2018/07/25(水) 21:02:09.90ID:DGkeAJEO0
Windows Win32 GDIで作ってみた
中身はいい加減だけど、マウスのボタンクリックイベントでポインタ座標を取得して順に直線で繋げているだけ
http://codepad.org/QqqOuloX
https://i.imgur.com/J8woM1h.png
2018/07/25(水) 21:04:29.51ID:Gtkf0v1Td
101回目のバッファオーバーフロー?
2018/07/25(水) 21:09:14.98ID:DGkeAJEO0
エラー処理なし
ウインドウハンドラ作成もメッセージループの処理も適当なのでプロシージャもいい加減な作り
2018/07/25(水) 21:13:14.68ID:E4aNPZoQ0
俺の言い方がまずかったようだ。
int* a = (int*)malloc(4);
これはわかる

int* a = (int*)malloc(5);
この場合でもコンパイルは通るし実行も出来る。

でも、やっていいことなんだろうかってね。
余った1バイトは気にしないでいいのだろうか?
2018/07/25(水) 21:18:04.56ID:Gtkf0v1Td
>>416
余分に確保しても大丈夫。連続したメモリーブロックと呼ばれるものだよ。頭に構造体を使ってもいいし。
■ このスレッドは過去ログ倉庫に格納されています