概要 変数がどのようにメモリ上に配置されているのか。 様々なパターンで検証、その個人的メモ。 環境 Visual Studio 2013 グローバル変数 全てint型
![変数がメモリ上でどのように配置されているかメモ - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/c6d033ae126bc984d512c66fc839f0686df6f214/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9JUU1JUE0JTg5JUU2JTk1JUIwJUUzJTgxJThDJUUzJTgzJUExJUUzJTgzJUEyJUUzJTgzJUFBJUU0JUI4JThBJUUzJTgxJUE3JUUzJTgxJUE5JUUzJTgxJUFFJUUzJTgyJTg4JUUzJTgxJTg2JUUzJTgxJUFCJUU5JTg1JThEJUU3JUJEJUFFJUUzJTgxJTk1JUUzJTgyJThDJUUzJTgxJUE2JUUzJTgxJTg0JUUzJTgyJThCJUUzJTgxJThCJUUzJTgzJUExJUUzJTgzJUEyJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz02NTlhZTU4NTE2YmJiNWJhN2E0M2NhMzdhMTM5OTAzMw%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwbWl6X2VyeiZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9NWI4MDUwZjMzOWEwNmJlY2NmOGQwODBmYzU2MTJkYWQ%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D142f633da92ed0b35fd024d7d566d186)
GNU/Linux でのスレッドプログラミング NPTL (Native POSIX Thread Library) Programming. 以前から GNU/Linux でスレッドプログラミングをするための簡単なガイドを書きたいと思っていました。今更スレッドプログラミングについて書いても目新しいものになるとは思えないのですが、初めて NPTL (Native POSIX Thread Library) を使ったプログラムをするという方には、もしかしたら役に立つ情報かもしれません。はじめは怖々小さなプログラムを書いて動かしてみる。思ったより簡単なことに驚かれるでしょう。スレッドプログラミングと言っても難しいことはなにもありません。ライブラリが沢山仕事をしてくるおかげで快適に使うことができます。 本文中では glibc のバージョンによる違いについても触れます。参照したバージョンは gli
c/c++ wrapper for python c/c++の遺産をpythonでも使いたい! そんなあなたに朗報! 今お使いのものがpythonでもe使えますよ! しかも無料ですよ! 参考にすべきリンク先 PythonからCプログラムを呼び出す | 象歩 PythonからMinGWで作ったCの関数を呼んでみる | BTY備忘録 SWIGでPythonラッパを書いてみる - 睡眠不足?! SWIG and Pythono Boost.Python - Boost 1.49.0 boost.python - Pythoninfo Wiki Boost.Python の機能をざっと紹介してみる 1,2はPython.hを使った伝統的な方法. 3,4はSwigを使ってユーザーが楽する方法. 5はc++もライブラリBoostの中のPythonを使ってかなり効率的に作る方法. 6もboost.pyt
これまで、PythonでDeep Learningを実装したコードを紹介してきましたが、今回はCおよびC++で実装したコードを紹介したいと思います。 実装したものは、Deep Belief Nets(DBN)、Stacked Denoising Autoencoders(SdA)となります。 コード量が多いので分かりにくいかもしれませんが、 DBN.cSdA.cDBN.cppSdA.cppの順番で掲載しています。 C言語での実装は、こちらの、C言語によるオブジェクト記述法を参考にさせて頂きました。 ヘッダーファイルなどを切り離して可読性を上げたコードは、githubのリポジトリにまとめてありますので、そちらもご参考ください。 制約付きボルツマンマシン(Restricted Boltzmann Machine)、ロジスティック回帰(Logistic Regression)、Denoising
(訳注:2016/3/2、いただいた翻訳フィードバックをもとに記事を修正いたしました。) (訳注:著者のMattより、「本文中で明言はしていないが、この記事の内容はx86-64 Unix/Linux/POSIXでアプリケーションをプログラミングする場合にフォーカスしている。他のプログラミング領域では、対象とするシステムに応じた(例: 8-bitの組み込みシステム、10年前のコンパイラ、多くの異なるCPUアーキテクチャで動く必要のあるアプリケーション、Win/Linuxでのビルド互換性など)特有のアドバイスが必要」との補足を頂いております。) 以下の文章は2015年の始めに書いたドラフトで、今まで公開していませんでした。私のドラフト用フォルダの中で誰の目も引かなかったため、大部分が書いた時のままです。公開するにあたり、単純に2015年を2016年に変更しました。 必要な修正、改善、苦情があり
Dr.BohYoh(ドクター・ボウヨウ)の愛称で知られる工学博士・柴田 望洋(しばた ぼうよう)氏は、プログラミング言語・情報処理関連の著書を数多く出版しています(一部の書籍は海外でも翻訳出版されています)。 ここでは、各著書の概略紹介を御覧いただけるだけでなく、本文の一部を閲覧したり、関連ファイルをダウンロードしたりできます(書籍と全く同じ形式のデータであるPDFファイルとして数百ページを公開しています)。じっくりとご覧ください。 ■ 新・明解Python入門 第2版 2023年9月刊 ■ 新・明解C言語実践編 第2版 2023年3月刊 ■ 新・明解C言語中級編 第2版 2022年9月刊 ■ 新・解きながら学ぶC言語 第2版 2022年2月刊 ■ 新・明解C言語入門編 第2版 2021年9月刊 ■ 新・明解C言語で学ぶアルゴリズムとデータ構造 第2版 2021年5月刊 ■ 新・明解Jav
はじめに# 次の業務が C/C++ をつかいそうなので, Emacs で C/C++ 開発環境を構築してみました. 題名は, なぜかけっこうアクセス数のあった Ruby 編にあやかった. Emacs で Ruby の開発環境をさらにめちゃガチャパワーアップしたまとめ | Futurismo [toc] IDE が備えるべき機能# 優れた IDE が備えるべき機能と Emacs での代表的な実現方法は以下. シンタックスハイライト/ インデント major-mode 検索・置換 たくさんあるよ. タグジャンプ gtags ggtags コード補間 auto-complete company エラーチェック flymake flycheck リファクタリング emacs-refactor インタープリタ・デバッカ emacs-dbgr プロジェクト管理 projectile ドキュメント参照
Hatada's Home Page トップ デジタル回路 音響・音声信号処理 言語処理 機械学習&整数計画 数学・アルゴリズム C言語 & C++ Windows C .NET & C# Java JavaScript PS & WSH & VBS Python アセンブリ言語 シェル&バッチ HTML & CSS ネットワーク データベース LibreOffice FP 新地図システム 地図システム 画像 システム 資料・リンク 雑記 旧版倉庫 索引 C言語入門 マクロ データの読み込み(scanf関数) 数値・文字列変換 算術演算 論理演算 ビット単位のAND/OR演算 シフト演算 配列 配列をポインタで走査する 構造体 共用体(union) ポインタ アルゴリズム 多角形に点が含まれるかどうか判定する シャッフル(配列の要素をランダムに並び替える) ファイル ディレクトリ内のファイ
[ C++で開発 ] インクルードガード 少し込み入ったプログラムを開発していると、ヘッダファイルを2重にincludeしてしまい、コンパイルエラーとなることがあります。ここでは、その回避方法として使われる内部インクルードガードと、include処理時間を大幅に削減しコンパイル時間を短くする冗長インクルードガードの2つを取り上げます。 (追加)最近のGCCでは#pragma onceも無警告で使用できるようになっているようです。 インクルードガードの必要性 2重インクルードの発生 まず、2重インクルードが発生する例を見てみます。
今年の文化祭で書いた記事です。 - C言語といえば、いやなイメージ、過去の遺産といった感じがあるかもしれません。 C言語のネガティブな側面というと、やはりポインタやメモリ管理などが難しい、ということが思いつくかもしれません。 しかし、C言語のポインタは表記に騙されやすいだけで、仕組み自体は全く難しくありません。 文法も、どこぞのPerlやC++と比べたら屁でもない単純さです。 実のところ、仕様が煩雑で難しいのは、Cプリプロセッサなのであります。 普段からあまり複雑な使いかたをしないから気づかないかもしれませんが、Cプリプロセッサの置換処理は、欺瞞と裏切りに満ちた世界なのです。 これが進化するとテンプレートなどといったもっと面白いものになるのですが、今回はCプリプロセッサで計算をしちゃったりするところまで試しにやってみましょう。 (なお、GCCにより実験的に調べた記事なので、他のCコンパイラ
これまでにC/C++ セキュアコーディングセミナーで使用した講義資料を公開しています。2010年度にセミナを実施した、文字列、整数、動的メモリ管理、書式指定文字列、CERT C セキュアコーディングスタンダード、ROSE については、それぞれ最新版の資料を掲載しています。 文字列 ユーザとソフトウエア間に発生するデータのやりとりの大部分は文字列によって行われます。 また、プログラム間でのデータ交換も文字列形式で行われるようになり、その結果、文字列表現や文字列管理、文字列操作における弱点がソフトウエア脆弱性を生み出しています。 文字列では、C/C++ 言語における文字列操作、一般的なセキュリティ上の欠陥と、その結果発生する脆弱性と対処方法について解説します。 C/C++ における文字列の特性 犯しやすい文字列操作の間違い 文字列の脆弱性 プロセスのメモリ構成 スタック破壊の仕組み コードイン
CとC++の動的メモリー管理(1)、malloc関数とnew演算子の違いを知る(2009/04/24公開) C言語とC++言語では、動的にメモリーを確保したり解放したりする手法は異なり、それぞれ長所と短所がある。もちろん、安全性を最重要視する組み込み機器では、動的に確保したメモリーを利用すべきでないという考え方には心から賛同する。リスクが利点を上回ってしまうからだ。しかし場合によっては、動的なメモリーを適切に管理することで改善できることも多いのではないかとも考えている。 C言語やC++言語に標準的に用意されているメモリー管理向け関数の動作が意図した通りでない場合は、メモリー管理関数を独自に開発するとよい。独自のメモリー管理関数の仕様と振る舞いは、できる限り標準関数と同じにすることが理想である。標準関数のメモリー管理方法と違ってしまう場合でも、関数の引数と返り値の数と型は、可能な限り標準
ネットワークプログラミングの基礎知識 ここでは IP アドレスやポート番号、クライアントとサーバの役割などを説明し、 perl・C言語・Java などでソケット (Socket) を使った HTTP クライアントや POP3 クライアント、簡単なサーバを作成してみます。 要はネットワークプログラミングをやってみよう、ということです。 このページのサンプルプログラムは、RFC などの規格に準拠した「正しい」プログラムではありません。 また、全体的にエラー処理が不十分です (今後改善する予定です)。 あくまでも概要を理解するためのサンプルととらえてください。 もし本気でしっかりとしたクライアントやサーバを書きたいなら、このページを読んだ上で、 さらに RFC を熟読し、そして wget・Apache・ftp コマンドなどのソースを参考にしてください。 このページに間違いを見付けたら、掲示板 で
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く