並び順

ブックマーク数

期間指定

  • から
  • まで

521 - 560 件 / 1007件

新着順 人気順

C++言語の検索結果521 - 560 件 / 1007件

  • C言語における副作用完了点とは? - FromNandの日記

    C言語における副作用で特に厄介なのがインクリメント・デクリメント演算子なので、特にそれについてまとめておきます。 ちなみに、ここのサイトがめっちゃわかりやすかったです。(C - for文におけるiのインクリメントの前置と後置の違いがわかりません|teratail) wikipediaには、副作用について次のように書かれています。 プログラミングにおける副作用(ふくさよう)とは、ある機能がコンピュータの(論理的な)状態を変化させ、それ以降で得られる結果に影響を与えることをいう。代表的な例は変数への値の代入である。 Cの企画書にはこのように書かれているみたいです。 ボラタイルオブジェクトへのアクセス、オブジェクトの変更、ファイルの変更、又はこれらのいずれかの操作を行う関数の呼び出しは、すべて副作用(side effect) と呼び、実行環境の状態に変化を生じる。式の評価は、副作用を引き起こして

      C言語における副作用完了点とは? - FromNandの日記
    • 全ページ - C言語入門

      全ページ 移動: 案内、 検索 全ページ 最初に表示するページ: 最後に表示するページ: 名前空間: リダイレクトを隠す 全ページC11 C99 C99のforループはインラインでカウンタの変数を宣言できる Cilk Plus Clang Static Analyzer Cコンパイラ Cプログラムを逆アセンブルする方法 Cライブラリ C言語でGPGPUを用いた並列コンピューティング C言語でUUIDを生成する方法 C言語でlibmdを用いてSHA256を計算する C言語での無限ループの作り方 C言語で二乗を計算する方法 C言語のexit関数の使い方 C言語のおすすめの書籍 C言語のインクルードガードはpragma onceを使う C言語のソースファイルの拡張子 C言語のマルチスレッドプログラミング C言語の文字列を連結する関数 C言語の文字列操作の関数 C言語の開発環境 C言語は難しいです

      • C言語のMacでのコンパイルと実行 - めーぷるのおもちゃばこ

        コンパイル方法 🐼コンパイルの流れ hello.cという名前で以下のテストプログラムを作成します。 今回の例ではこれをデスクトップに保存しておきます。 #include<stdio.h> int main() { printf("Hello, World\n"); return 0; } ターミナル を開き、 $ cd Desktop/ でデスクトップに移動、 gccコマンドで先ほどのhello.cをコンパイルします。 $ gcc hello.c コンパイルが成功するとa.outという実行ファイルができます。 lsコマンドで確認してみるとあります。 $ ls a.out hello.c このa.outを実行します。 $ ./a.out Hello World といったかんじです。 🐼ファイル名の指定 ここで浮かんだ疑問として、「これ同じ階層にべつの.cファイルがあったらどうなるの?です

          C言語のMacでのコンパイルと実行 - めーぷるのおもちゃばこ
        • C言語でバブルソート - はるのぶろぐ。

          こんにちは、情報系大学生のハル(Blog_IT_haru)です。 今回は、C言語でバブルソート(単純交換ソート)の仕方を解説します。 今回から、本格的にアルゴリズムに入っていきます。 すぐにコードを書きたい方は、以下のもくじより、「実行してみよう」からどうぞ。 もくじ バブルソートとは? 開発環境 実行してみよう サンプルコード 説明あり 説明なし コードに出てきた用語解説 int、for文、sizeof、printf、%d、\nについてはこちら if文はこちら おすすめの本 おすすめのC言語学習サイト 参考にしたアプリ まとめ バブルソートとは? コトバンクによると、 コンピューターでデータをある基準によって並べかえるソートのうち、最も基本的なアルゴリズムの一つ。データの要素を最初から順番に比較し、大小が逆であれば入れ替える。これを順次行うことにより、データ最後列より順序が確定していく。

            C言語でバブルソート - はるのぶろぐ。
          • C言語 math.hをコンパイルする時に-lmが必要ないとき | クロジカ

            ホーム / ハック / C言語 math.hをコンパイルする時に-lmが必要ないとき

              C言語 math.hをコンパイルする時に-lmが必要ないとき | クロジカ
            • なぜ大抵のOSはC言語で書かれているのですか?

              回答 (6件中の1件目) C言語が高級言語と呼ばれながらも, コンピュータアーキテクチャに近いプリミティブな言語だからです。高水準な機能を提供できる言語は, メモリ管理などOSの機能がないと実行できないのです。C言語は, 表示機能がない環境では stdio.h さえもインクルードせずに動作可能なプログラムを書けます。OSは, コンピュータ上でメモリ管理, 割り込み/イベント管理, プログラム制御など便利な機能を提供するソフトウェアなので, その開発は便利な機能がないプリミティブなプラットフォーム上で動作可能なソフトウェアでなければなりません。その意味で, C言語はOS開発に適しています。...

                なぜ大抵のOSはC言語で書かれているのですか?
              • C言語を使ったエフェクター 第一回:wavファイルの入出力 - 音遊び日記

                1.はじめに 2.wavファイルのフォーマット 3.wavファイルの読み込み/書き込み 4.実行 5.まとめ 1.はじめに タイトルの通り、C言語でギターエフェクターを作成しました。第一回はC言語で音声ファイルを扱う方法についてです。wavファイルの音声データをC言語の配列として取り込みます。その方法について勉強した内容をまとめます。 2.wavファイルのフォーマット プログラミングでファイルを扱おうと思った時、そのファイルのフォーマット(決まり事)を知らないといけません。wavファイルはRIFFという形式に則っていて、この表のように大きく三つのブロックに分かれています。 チャンク名 パラメータ Byte数 内容 RIFFヘッダ ID 4 “RIFF” size 4 datasize + 36 type 4 “WAVE” フォーマット チャンク ID 4 “fmt␣” size 4 16

                  C言語を使ったエフェクター 第一回:wavファイルの入出力 - 音遊び日記
                • C言語 音楽 - Google 検索

                  2020/05/27 · 概要C/C++ にて オーディオファイルを再生する方法をまとめた。オーディオファイルを再生するためには、大きく2つの機能が必要です。1つ目の機能 ...

                  • 玄人「まずC言語から覚えろ!」「Cはすべての基礎!」これまじ?? : 【2ch】コピペ情報局

                    2020年07月14日 10:22 VIP・なんj コメント( 44 ) 玄人「まずC言語から覚えろ!」「Cはすべての基礎!」これまじ?? 1:以下、?ちゃんねるからVIPがお送りします:2020/07/13(月) 11:22:46 マジ? 2:以下、?ちゃんねるからVIPがお送りします:2020/07/13(月) 11:23:20 歴史的に基礎なだけ 3:以下、?ちゃんねるからVIPがお送りします:2020/07/13(月) 11:23:32 C++でいいと思うぞ 偉人たちのあんまりな死に方 ツタンカーメンからアインシュタインまで 世にも奇妙な人体実験の歴史 食べられちゃう者たちの生き残り大作戦 しぶとい生き物図鑑 世界のふしぎな木の実図鑑 まぼろしの奇想建築 天才が夢みた不可能な挑戦 知れば知るほど背筋が凍る 世界の未解決ミステリー 絶対に出る 世界の幽霊屋敷 絶対に住めない 世界のゴ

                    • C言語のマクロの注意点

                      C言語のマクロの注意点について C言語のマクロはとても便利ですが、落とし穴も多くあります。このページではマクロの注意点について説明します。 マクロ置換は、単純な文字列の置き換えです。このことを忘れていると、予想外の結果を生むことになります。 マクロの置換後の字句は、カッコで囲むほうがよいでしょう。プログラム中で使用された際に、置換後の字句の中に、前後にある演算子よりも優先度の低い演算子があった場合、予想と違う結果を生むことになるからです。 下記のプログラムでは、プログラムを書いた人の意図とは違う計算結果となります。これは「PRICE * num」が「COST + 10 * num」とマクロ展開され、COSTに10 * numの計算結果が足されるためです。 /** * @file MacroAttention1_1.c * @brief マクロの注意点.その1-1 */ #include <

                      • ハッシュテーブルをc言語で実装(サンプルコードあり) | ITを使っていこう

                        • 【C言語】void型- 何も無いことを意味するってどういうこと? - Qiita

                          はじめに コードを書いているとよく出てくるvoid型。 意味を調べると「何もない」ことを意味するデータ型と出てくる。 率直に思った感想、「何もないってどういうこと?」です。 まだまだプログラミング初心者な私は型の本質が理解できていないのかも。 ということで深掘ってみました。 Voidの 『何もない』 を解説 何もない=型がない int型やfloat型が1~100などの数ある数値だとすると、void型は0である。 0の為、返す必要がないのである。 voidは関数の引数と戻り値のデータ型としてよく使われる。 関数のは4通り考えられる 引数あり、戻り値あり 引数あり、戻り値なし 引数なし、戻り値あり ★引数なし、戻り値なし =何もない voidは4つ目のどちらもない時のデータ型として使われる。 本来の関数

                            【C言語】void型- 何も無いことを意味するってどういうこと? - Qiita
                          • C言語 チートシート - Qiita

                            c言語もよく忘れる言語なので忘れガチなところだけチートシートを作ります。 char *a[]の意味するところ 最も基本ですが、メモリのイメージがしっかりできていないとエラーが出まくったりします。 どこで使われているか? Cの教科書なんかによくでてくる、微妙にわかったようなわからないようなmainの引数でもつかわれていますw #include <stdio.h> int main(int argc,char *argv[]) { printf("argc=%d \n",argc); for (int i=0;i<argc;i++){ printf("argv[%d]=%s\n",i,argv[i]); } return 0; } 実行結果 ./main a b c d とすると argc=5 argv[0]=./main argv[1]=a argv[2]=b argv[3]=c argv[

                              C言語 チートシート - Qiita
                            • C言語027 ポインタと文字列 : プログラミング指南 - Code Knowledge

                              プログラミング指南 - Code Knowledge ゲーム制作に関するプログラミング等を主に書き溜めていきます。ただ、どちらかと言えば日記的な書き方が続くと思いますが、そこは温かい目で見て頂ければ。あと、ちょっとしたサンプルやツールのダウンロードも出来るようにしておきます。

                                C言語027 ポインタと文字列 : プログラミング指南 - Code Knowledge
                              • C言語の規格、方言の種類をざっくりまとめる - HKENTO's Blog

                                なんとなく気になったので調べてみた。主にWikipediaの情報を自分なりにまとめたもので、難しくてよくわからないのでとりあえずざっくり学ぶことが目標なので、細かい部分とかはばっさりカットしてます。 規格の種類 K&R C89/C90 C99 C11 K&R C言語の作者デニス・リッチーとベル研究所に在籍していたカナダ出身の計算機科学者ブライアン・カーニハンの共著である「The C Programming Language」が1978年を出版され、その後標準ができるまで実質的なC言語の標準として扱われる。発展可能性のある部分は曖昧に書かれていたため、C言語の普及とともに互換性のない処理系がいくつも作られた。(これはプログラミング言語でしばしば起こる現象であり、C言語固有の現象ではない。) C89/C90 上記のような状況から、C言語の標準規格がつくられた。まずはじめに89年にANSI(Am

                                  C言語の規格、方言の種類をざっくりまとめる - HKENTO's Blog
                                • C言語 入門 全48回で現役大学生が解説

                                  最近、C言語の学習を始めようと思ったんだけど、何から始めれば良いか分からないな。入門者向けに解説して欲しい… こちらの悩みを解決しますね。 C言語はプログラミングスクールに行かなくても習得出来ます。 オススメの参考書などもありますが、できるだけ費用は抑えたいですよね。 このサイトでは現役大学生が、0から学習する初心者のために、全46回でC言語の基礎を学習できるようにまとめました。 少し勉強するだけでも1か月後にはだいぶ変わるはずです! 想像してみてください。1か月後にC言語をマスターしている自分の姿を。 0円でC言語をマスターしてみませんか? 【C言語 入門の基礎】まず初めにプログラミングをするには、開発環境を整えなければいけません。また、開発環境の使い方をよく理解する必要があります。 「C言語 入門 Visual Studio プログラム実行方法!」は必ず読みましょう! 基礎の基礎ですが

                                    C言語 入門 全48回で現役大学生が解説
                                  • 天才開成中学生、C言語を1〜2週間勉強しただけでとんでもない偉業を成し遂げてしまうwwww : オレ的ゲーム速報@刃

                                    ■ツイッターより 開成中学校のスーパー中学生くん。 1〜2週間ほどC言語の勉強。 それから、なぜか数週間ほどで高スペックな全く新しい言語『Blawn』作成。 「U-22プログラミングコンテスト2019」経済産業大臣賞(総合)受賞 作った理由⇨C言語が扱いにくかったから(・・?) トニー・スタークかよ。#Blawn#上原直人 pic.twitter.com/m5uZZ7VBB6 — MIYAGI HIDEKI (@JW9EomO9FgvK5HG) 2019年10月22日 補足すると、 経済産業大臣賞 スポンサー企業のデジタルガレージとサイボウズ2社の賞 ニコニコ生放送の視聴者による賞 の4冠 — 甘夏 (@amanatsuoishii) 2019年10月22日 <ネットでの反応> 日本に『飛び級』制度があったら彼は今どこまで進化していただろうか。(^^; こうゆー高校生は、早めにスキップで海

                                      天才開成中学生、C言語を1〜2週間勉強しただけでとんでもない偉業を成し遂げてしまうwwww : オレ的ゲーム速報@刃
                                    • C言語のprintfにはGoの%v相当のものが存在しない理由 - Qiita

                                      Go言語のPrintf関数は %d や %s などのフォーマット指定を使って第二引数以降の値を埋め込んだ文字列を出力します。 また、 %v というどんな型に対してもいい感じに出力してくれる万能なフォーマット指定子もあります。 このPrintf関数はC言語のprintf関数が元になっていますが、元ネタのprintfには %v という便利なフォーマット指定子がなく、型の種類毎に別々のものを使う必要があります。 なぜ、C言語には %v 相当のものが存在しないのでしょうか? 答え Goのinterface{}は元の型情報を保持しているが、C言語のva_listは元の型情報を保持していないため。 まず、GoのPrintfのシグネチャを確認します。 以下によると、func Printf(format string, a ...any) (n int, err error)というシグネチャであることが分

                                        C言語のprintfにはGoの%v相当のものが存在しない理由 - Qiita
                                      • C言語とJavaの環境構築 - Qiita

                                        Ubuntu22.04環境下における、CとJavaの環境構築について備忘録。 C言語 コンパイラのclangとgccのインストールだけなので、

                                          C言語とJavaの環境構築 - Qiita
                                        • c言語でリバーシを作ってみた!!! - Qiita

                                          動機 リバーシを作りました。 それを短く書き直しました。 そして今回は乱数で置くのではなく、置き場所を考えて置く処理を加えました! コード 折りたたんでます。 #include <stdio.h> #include <stdlib.h> #include <time.h> #define N 8 void init(void); void show(void); void put(char); int check(void); int over(void); int isOk(char, int, int, int, int, int); int canPut(char, int); void set(char, int, int, int, int, int, int, int); void reversi(char, int, int, int, int, int); void mak

                                            c言語でリバーシを作ってみた!!! - Qiita
                                          • 「C言語の開発環境を構築する - C」の動画チュートリアル | LinkedInラーニング

                                            今すぐコースを受講しましょう 本日登録してエキスパートが指導する22,500件以上のコースにアクセスしましょう。また、このコースを個別に購入することもできます。 “ このレッスンでは C 言語プログラムを 作成するための開発環境を Eclipse で構築する方法について 説明します。 C 言語は大変に古い プログラミング言語であり 多くのコンパイラが存在します。 その中には無料で使用することが できるものも多くあります。 コンパイラだけをインストールし、 メモ帳のようなテキストエディターと コマンドプロンプトだけで プログラム開発を進めることもできますが 本コースでは統合開発環境の Eclipse を使用することにします。 またコンパイラには GNU プロジェクトが開発、 公開している GCC を 使用することとします。 では Eclipse の開発環境を 構築していきましょう。 まず h

                                              「C言語の開発環境を構築する - C」の動画チュートリアル | LinkedInラーニング
                                            • AtCoder に登録したら解くべき精選過去問 10 問を C言語 で解いてみた - Qiita

                                              大学でC言語しか勉強したことがないが競技プログラミングをやってみたい人はいると思います。しかし資料はC++が大半であり、C言語に対応した資料は少ないです。この解答集が最初の一歩の助けになれば幸いです。 この狙いのため、全解答とも、C/C++のいずれでもコンパイル可能となっています。 また、記事の終わりに、C++の【使い方】について説明しています(基礎ではありません、ここ大事。慣れるまではbetter Cでいいのです)。 余談:全解答C89準拠です(1行目を除く)。また、遊びですが、(6/7/9問目を除き)picocというインタプリタでも動作するようになっています。 解答 例題 PracticeA scanfのフォーマット文字列中に空白を入れている例が散見されますが、まったく必要ではありません。また、空白と改行の差を無視して入力することができます。 ちなみに、//usr/bin/env pi

                                                AtCoder に登録したら解くべき精選過去問 10 問を C言語 で解いてみた - Qiita
                                              • C言語で自作shell作ってみた(コマンド実行とリダイレクト) - バニキPの気ままに

                                                この記事は,Akatsuki Advent Calendar 2021 の3日目の記事です. はじめに 11月半ばに急にslackでメンションが飛んできて,アドベントカレンダーの空き枠後少ししかないよ!と. 毎回アドベントカレンダー然り,何かしらのイベント然りで何を喋るかネタに困る. キラーパスがよく飛んできて,毎回なんとかなってるので今回もまあいっかということで引き受けました. 投稿1週間前の土日に頑張るぞと思ってたら,ライブがあってその夢は打ち砕かれました. なので,という訳ではないですが,そこまでやったぜ感はないです.(続報としてもっと良い感じに作って行こうかなとかは思ってます) 経緯 最近,Shell Scriptを読んで割と学ぶ機会がありました. まだまだ,Linux関連知識をもっと深めていった方がいいなと感じる場面がありました. じゃあ,勉強になる何かを作って勉強しつつアドベン

                                                  C言語で自作shell作ってみた(コマンド実行とリダイレクト) - バニキPの気ままに
                                                • Ubuntu20.04 LTS上で、TensorFlow 2.3.1をソースからビルドし、C++言語の共有ライブラリを作成する - Qiita

                                                  事のきっかけ 前回の記事から1年が経ち、情報が古くなってきたので更新。 特にPV数とか増えないけどね 更新履歴 2020/11/18: Ubuntu20.04 LTS & TensorFlow 2.3.1として再投稿 同日: ライブラリのコマンドが不足していたので追記 使用PC cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=20.04 DISTRIB_CODENAME=focal DISTRIB_DESCRIPTION="Ubuntu 20.04.1 LTS" gcc --version gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0 Copyright (C) 2019 Free Software Foundation, Inc. This is free software; see the

                                                    Ubuntu20.04 LTS上で、TensorFlow 2.3.1をソースからビルドし、C++言語の共有ライブラリを作成する - Qiita
                                                  • Ruby-FFI で argv[] のような「C言語の文字列の配列」を扱いたい時の書き方 - Qiita

                                                    module Exec extend FFI::Library attach_function :execvp, [:string, :pointer], :int end strptrs = [] strptrs << FFI::MemoryPointer.from_string("vim") strptrs << FFI::MemoryPointer.from_string("/tmp/foo") strptrs << nil # Now load all the pointers into a native memory block argv = FFI::MemoryPointer.new(:pointer, strptrs.length) strptrs.each_with_index do |p, i| argv[i].put_pointer(0, p) end Exec.ex

                                                      Ruby-FFI で argv[] のような「C言語の文字列の配列」を扱いたい時の書き方 - Qiita
                                                    • [42Tokyo] C言語で一人称視点のゲームを作った - Qiita

                                                      42Tokyoの課題「Cub3D」についての記事です。 42Tokyoの「Cub3D」課題解説 Cub3Dは、一人称視点の3Dゲームを作成するためにRaycasting技術を活用する課題です。 Raycastingとは Raycastingは、リアルタイムの3Dグラフィックレンダリングにおいて重要な技術です。私たちが物体を認識するのは、光源から発せられた光線が物体に反射し、私たちの目に届くことによって可能になります。 引用: The Textbook of RayTracing @TDU 全ての光線を計算すると膨大な処理が必要になりますが、Raycastingではカメラから見える範囲内の光線のみを計算し、それ以外の光線は無視します。これにより、グラフィックレンダリングの計算処理が大幅に軽減されます。 引用: The Textbook of RayTracing @TDU Raytracin

                                                        [42Tokyo] C言語で一人称視点のゲームを作った - Qiita
                                                      • タイマー(Win32API)(C言語) - 超初心者向けプログラミング入門

                                                        ウィンドウアプリでは、一定時間の経過後に特定の処理を実行したいということがあります。 これをC言語の機能のみで実現しようとすると結構大変なのですが、Windows APIにはタイマーの機能が用意されています。 タイマーはSetTimer関数を使用して作成します。 SetTimer関数 UINT_PTR SetTimer( HWND hWnd, UINT_PTR nIDEvent, UINT uElapse, TIMERPROC lpTimerFunc ); ウィンドウhWndに関連付けられたタイマーを作成する。 hWndがNULLの場合、作成されたタイマーを識別するIDを返す。 hWndがNULLでない場合、0以外の整数を返す。 失敗した場合は0を返す。 hWndはウィンドウハンドルです。 この関数の呼び出し元と同じスレッドから作成したウィンドウである必要があります。 ここにはNULLを指

                                                        • アルゴリズムの概要 - 苦しんで覚えるC言語

                                                          アルゴリズムとは、ある問題を解くための手順、すなわち、公式のことです。 もう少し厳密には、明確で有限個の手順を有限回繰り返す計算方法のことです。 明確な手順とはその通りの意味です。 第0部でも説明したように、コンピュータは明確な命令を必要とします。 「冷蔵庫からキムチを取ってきて」は不明確な命令であり、 「18度回転、182センチ前進、36度回転、腕を90度上昇・・・」は明確な命令です。 有限個の手順とは、少々不思議な表現です。 手順が無限になることは一般には考えづらいので、あまり気にしなくても良いでしょう。 有限回繰り返す計算とは、すなわち、いつかは必ず計算が終わる、ということです。 いつまでも終わらない計算を延々と繰り返していたのではキリがありません。 無限に続く円周率の計算も、ある程度まで計算した段階で強制的に終了させてしまいます。 これらの条件は、コンピュータに計算させて問題を解く

                                                            アルゴリズムの概要 - 苦しんで覚えるC言語
                                                          • 『これを知らなければ、C++プログラマを名乗れない。ITエンジニアも驚いた「C言語」の配列の仕組み→「初めて知った」「配列へのアクセスの書き方が糖衣構文」』へのコメント

                                                            テクノロジー これを知らなければ、C++プログラマを名乗れない。ITエンジニアも驚いた「C言語」の配列の仕組み→「初めて知った」「配列へのアクセスの書き方が糖衣構文」

                                                              『これを知らなければ、C++プログラマを名乗れない。ITエンジニアも驚いた「C言語」の配列の仕組み→「初めて知った」「配列へのアクセスの書き方が糖衣構文」』へのコメント
                                                            • C言語ソケット通信サンプル

                                                              TCPソケット通信のサーバークライアントプログラムのサンプル作りました。 説明等はコードコメントとして結構詳しめに書いていますので是非。 1.サーバープログラム 2.クライアントプログラム 終わりに 一応上記プログラムはlinux向けです。docker上のcentOS7で動作確認しました。 Cでソケット通信プログラム書くとそれだけで結構ステップ数増えるなぁ…

                                                                C言語ソケット通信サンプル
                                                              • C言語で通信を盗聴する !? その1【ARPキャッシュポイズニング】 - かさやぬすの日記

                                                                こんにちは!まさです。 今日では有線より無線で通信する機会が多くなっています。それに伴い、ますます盗聴のリスクは高まっていると思います。具体的に盗聴はどのようにしてなされるのでしょうか。 今回は2つの通信機器同士の通信の盗聴の具体的な仕組みについて紹介したいと思います。 通信機器同士が通信をする場合その2つをつなぐ通信経路ができます。この通信経路の間に第三者が入り込み、通信路を流れるパケットを盗み見る攻撃のことを総称して"中間者攻撃(MITM攻撃)"といいます。 この攻撃を成功させるためには通信経路を攻撃者の都合のいいように変更できなければなりません。一体どのようにして通信の向きを変更するのでしょうか? 今回は"ARPキャッシュポイズニング"という手法について紹介したいと思います。 簡単のため、今回は攻撃者と被害者はすべて同一のネットワーク(LAN)にいることを想定してください。 この攻撃

                                                                  C言語で通信を盗聴する !? その1【ARPキャッシュポイズニング】 - かさやぬすの日記
                                                                • C言語へのFFIを含むRustコードをWASMにする(CMakeを添えて)

                                                                  動機 PlantUMLをwasm化するためにGraphvizへの依存をどうしたものか考えていました。すべてRustで書き直せればそれがいちばん手堅いのですが、Graphvizのソースコードは中々に大きく、それをRustで書き直すのは現実的ではありません。そこで考えたのが、RustからFFIでGrapvizのC++コードを呼ぶようにして、それをwasm化すればいいじゃないかというアイデアです。 探してみると以下のnpmパッケージでGraphvizをEmscriptenでwasm化していました。 これを応用すればやりたいことができるのではないかと考え、まずは最小限のCMakeを使ったFFIをwasm化することを試みることにしました。 結論 最終的には以下にまとめてあります。 . ├── Cargo.lock ├── Cargo.toml ├── ffi-example ...Cのコードを使った

                                                                    C言語へのFFIを含むRustコードをWASMにする(CMakeを添えて)
                                                                  • C言語 メモリ上にある、PNGデータをlibpngを介して読み込むサンプル。 - うーびのメモ

                                                                    メモリ上に確保したPNGデータをlibpngに読み込んでもらってlibpngから画像データを取得してみる感じです。 /* read_png_from_mem.c * メモリ上にある、PNGデータをlibpngを介して読み込むサンプル。 * 参考: * http://d.hatena.ne.jp/yoya/20080714 * http://diary.awm.jp/~yoya/data/2008/07/14/png_test.c * http://gmoon.jp/png/ */ #include <stdio.h> #include <stdlib.h> #include <png.h> typedef struct my_png_buffer_ { unsigned char *data; /* PNGのデータが入ったメモリへのポインタ */ unsigned long data_le

                                                                      C言語 メモリ上にある、PNGデータをlibpngを介して読み込むサンプル。 - うーびのメモ
                                                                    • 業務のためのC#・C言語・C++学習

                                                                      C#を業務で回路の制御にC#を利用していました。これに加えC言語/C++を使う必要が出てきましので、基礎文法からアプリケーション開発までを学習することにしました。私と似たような立場の方の役に立てればと思います。 学習計画 ・環境構築 ・基礎文法 ・Atcoderで問題を解く ・オブジェクト指向で開発 ・何かアプリを作る ・他者のコードを読む ・その他ソフトウェア開発に必要な知識を学ぶ 環境構築 基礎文法 Atcoder オブジェクト指向で開発 環境構築 Windowsで動く2つの環境を用意しました。将来的にはLinuxでの開発をする予定なので、ターミナルでビルドコマンドを手打ちできるVSCode+MinGWをメインに扱っていきます。 ・Visual Studio(総合環境) ・VSCode(コードエディタ)+MinGW(コンパイラ、リンカ) MINGWの準備: x86_64-12.2.0-

                                                                        業務のためのC#・C言語・C++学習
                                                                      • 【C言語】atan関数とatan2関数について解説(傾きor座標から角度を求める関数)

                                                                        このページでは、C言語の標準ライブラリ関数である atan 関数と atan2 関数について解説していきます。 この2つは同じような関数ですが、若干動作や引数・返却値が異なります。図形を描画するなど、2次元平面上で座標を扱うようなプログラムを作成する場合、atan2 関数の方が利用することは多いかなぁと思います。 まずは、この2つの関数それぞれについて解説し、その後にこの2つの関数間での違いについて解説していきたいと思います。 (前提知識)tan 関数とは atan 関数と atan2 関数は tan 関数の逆関数的な関数になります。 atan 関数と atan2 関数を理解する上では、tan 関数を理解しておいた方が良いため、まずは tan 関数について簡単に説明しておきます。 tan 関数とは、一言でいえば正接を求める関数です。 もう少し直感的にいえば、下の座標の図において tan(a

                                                                          【C言語】atan関数とatan2関数について解説(傾きor座標から角度を求める関数)
                                                                        • c言語プログラミングの授業課題でわからない問題があります。数値(n)を入力すると、フィボナッチ数列のその数値番目(n番目)... - Yahoo!知恵袋

                                                                          c言語プログラミングの授業課題でわからない問題があります。 数値(n)を入力すると、フィボナッチ数列のその数値番目(n番目)の項を表示するプログラムを再帰を使用しないで作りなさい。 c言語プログラミングの授業課題でわからない問題があります。 数値(n)を入力すると、フィボナッチ数列のその数値番目(n番目)の項を表示するプログラムを再帰を使用しないで作りなさい。 という問題がわかりません。 図々しいお願いですが、できれば解説もお願いします。 どうがよろしくおねがいします。

                                                                            c言語プログラミングの授業課題でわからない問題があります。数値(n)を入力すると、フィボナッチ数列のその数値番目(n番目)... - Yahoo!知恵袋
                                                                          • C言語+GNU Assembler で詰まった話 - 気が向いたら書くやつ

                                                                            アセンブリソースのサンプルプログラムが動かず頑張って解析?した記録。 2018/11/1 目次の追加や章立ての変更により、見やすい形に修正。 目次 目次 実行環境 ソース コンパイルと実行 デバッグ・解析 コアダンプを使った解析 出力 デバッグ GNU gdbでのデバッグ 設定 デバッグ開始 発見:不正なアドレスへの分岐 EBXレジスタの追跡 修正と確認 使用するレジスタの変更 実行 原因:EBXレジスタの書き換え 呼び出し規約 cdecl サンプルプログラムの誤りか否か まとめ 実行環境 CPU: Intel Core i5-2520M (x86_64) OS: Ubuntu18.04 LTS 64bit RAM: 8GB コンパイラ: gcc 7.3.0 アセンブラ: GNU assembler 2.30 デバッガ: GNU gdb 8.1.0 ソース x86アセンブリ言語の学習として

                                                                              C言語+GNU Assembler で詰まった話 - 気が向いたら書くやつ
                                                                            • 【C言語】文字列をコピーする方法【危険なstrcpy関数と安全な文字列複製】

                                                                              C言語の文字列型(const char *)や文字配列(char [])は、代入演算子(=)による文字要素のコピーが行えません。いずれの型もポインタで表現されているため、代入演算子による処理はあくまでポインタのアドレスをコピーするものとなり、参照先の実体は同一のものとなります。 const char *s = "abc"; const char *t = s; // 要素のコピーではなく、ポインタの値コピー (void *)t == (void *)s; // true(同じアドレス) *t = 'A'; *s == 'A'; // true(同じ参照先であるため書き換わってしまう) // 配列へのコピー代入も不可 char a[4] = s; // error: array initializer must be an initializer list or string literal

                                                                              • 1960~1970年代のC言語の黎明期が良くわからなったので可視化(C言語 vs デニス・リッチー vs UNIX vs ケン・トンプソン) - Qiita

                                                                                はじめに 1960~1970年代のC言語の黎明期流れがよくわからなかったので整理してみた。 可視化 時代の流れを調べていたら、Go言語と、ビルジョイ繋がりでJavaも出てきたので、追加しました。 結論 ケン・トンプソンの業績がすごい事が分かった。 なんだか、限られた数人の天才たちが、世界を引っ張っている気がした。 ファイル 変遷SVGファイル in GitHub

                                                                                  1960~1970年代のC言語の黎明期が良くわからなったので可視化(C言語 vs デニス・リッチー vs UNIX vs ケン・トンプソン) - Qiita
                                                                                • 【C言語】定数の設定プログラム | インフラエンジニアの技術LOG

                                                                                  C言語において「printf文」は文字列の表示だけではなく、書式を指定してデータを表示する「定数」があります。 今回は文字列以外のデータの表示プログラムをメモしていきます。 定数の設定例 以下の設定では、書式を使ったプログラミング例になります。 #vim test2.c #include <stdio.h> int main () { /*定数の出力設定例*/ printf ("%cは%sである。\n%dは%sである。\n%fは%sである。\n", 'a', "半角ひと文字のアルファベット", 5, "数字", 5.0, "小数点を含めた数字"); } //終了 上記で設定した出力結果が以下となります。 aは半角ひと文字のアルファベットである。 5は数字である。 5.000000は小数点を含めた数字である。 書式指定例 今回使用した書式を以下にまとめます。

                                                                                    【C言語】定数の設定プログラム | インフラエンジニアの技術LOG