malloc()とfree()
前回の授業で説明した、alloca() は、スタック領域にデーターを覚えるので、allocaを実行した関数の終了ともに配列領域が消えてしまう。しかし、関数が終わってもそのデータを使いたいといった場合には、malloc() […]
Webプログラミングとセキュリティ
ここまでの授業では、Webを使った情報公開で使われる、HTML , JavaScirpt , PHP , SQL などの解説を行ってきたが、これらを組み合わせたシステムを構築する場合には、セキュリティについても配慮が必要 […]
WiCON発表会
電子情報3年の内山田くんと辻くんが、WiCON2022に参加し、今日から3日間、東京ビッグサイトで展示and発表会。
プログラム言語(C言語)の基礎
学際科目の情報制御基礎において、学科間でプログラミングの初歩の理解差があるので、簡単なC言語プログラミングの基礎の説明。 Hello World “Hello World”と表示するだけのC言語プ […]
バックエンドと所有権の設定
前回の講義でファイルのパーミッション(読み書き権限)について確認したが、バックエンドプログラミングで必要となるファイルの所有権の設定を通して、演習を行う。これに合わせ、サーバ上のファイルの編集作業なども体験する。 サーバ […]
派生と継承と仮想関数
前回の派生と継承のイメージを改めて記載する。 // 基底クラス class Person { private: char name[ 20 ] ; int age ; public: Person( const char […]
コンパイラと関数電卓実験の総括
複雑な字句解析 コンパイラでは、字句解析→構文解析を行うのが一般的である…と説明をしたが、最近のC++では少し話がややこしい。 C++ではテンプレート機能などがあるので、整数型のリストみたいな型は、forwa […]
メモリの使用効率
次にメモリの利用効率の話について解説する。 配列宣言でサイズは定数 C言語では、配列宣言を行う時は、配列サイズに変数を使うことはできない。 最近のC(C99)では、実は下記のようなものは、裏で後述のalloca()を使っ […]
悪趣味なプログラム
#include <stdio.h> int a[ 3 ] = { 11 , 22 , 33 } ; int main() { for( int i = 0 ; i < 3 ; i++ ) […]
ポインタ処理
ここからは、次のメモリの消費を考慮したプログラムの説明を行うが、ポインタの処理に慣れない人が多いので、ポインタを使ったプログラミングについて説明を行う。 値渡しとポインタ渡し 大きなプログラムを作成する場合、変数名の使い […]