C/C++

C/C++

C/C++プログラミング入門 – C++の構造体

C/C++プログラミング入門 - C言語の構造体ではC言語の構造体について説明を行った。本記事ではそれについでC++言語における構造体とクラスについて説明を行いたい。
C/C++

C/C++プログラミング入門 – C言語の構造体

久々のC/C++プログラミング入門として、今回は構造体について説明を行いたい。構造体は複数の変数をまとめることができる一種の箱のようなものである。変数が増えるような場合、構造体をうまく使いこなせないと修正の困難なコードになるだろう。
C/C++

AddressSanitizerが思った以上に優秀

memcpyでアドレスオーバーラップさせると・・・で少しだけ言及したが、gcc4.8以降あるいはclang 3.1以降ではAddressSanitizer(略称ASan)が使えるようになっている。また、Xxode 7以降ではビルドスキーマの...
C/C++

memcpyでアドレスオーバーラップさせると・・・

memcpyで配列のアドレスをオーバーラップした場合、意図せぬ動作を引き起こすことがある。それは非常に厄介な問題を孕んでおり、通常では見つけることも困難になることも予想される。
C/C++

C++プログラミング入門番外編 – std::functionとラムダ式

これまでC言語及びC++の入門に関連する情報を色々書いてみたが、今回は番外編としてC++11以降特有の機能を使ってみたい。
C/C++

C/C++の配列は要注意

C言語およびC++の配列は他の言語と比較して使用するには気をつけなければならないことがある。配列外参照は特に要注意で、他の言語の多くではランタイムエラーが発生して処理が止まるが、C言語やC++では一見すると正常に動いているように見えてメモリ...
C/C++

C/C++プログラミング入門 – ポインター

C/C++プログラミング入門 – 配列においては配列について簡単に説明を行った。では、そろそろC言語及びC++における大きな鬼門の一つと言えるポインターについて説明を行いたい。ここではポインターの考え方と簡単なコードを交えて説明を行いたい。
C/C++

C/C++プログラミング入門 – 配列

C/C++プログラミング入門 – 文字列の入力からかなりの期間が離れてしまったところで、今回は久々にC言語及びC++の説明を行いたい。今回は解列について簡単に説明を行いたい。
C/C++

平成27年度秋季の基本情報技術者試験のC言語の設問にひどいコードがあるらしい

平成27年度の基本情報技術者試験の午後の問題のうち、C言語の設問にひどいコードが出ているとのことである。当方もIPA 独立行政法人 情報処理推進機構:問題冊子・配点割合・解答例・採点講評(2015、平成27年)の基本情報技術者試験 平成27...
C/C++

enumをキーとしたポインター配列を使った時にクラッシュする際の一時しのぎ

これは当方が実際に遭遇したことだが、任意のクラスポインターをenumのキーを使って格納している配列で、一部環境で動作させた時に原因不明のEXC_BAD_ACCESSが発生してクラッシュするという問題に直面した。思った以上に厄介な問題で、根本...
C/C++

C/C++プログラミング入門 – 文字列の入力

C/C++プログラミング入門 – ループ処理ではループ処理について説明を行った。今回はC言語及びC++における文字列の入力について説明を行いたい。 C言語 C言語で文字列の入力を行う場合、参考として以下のコードが挙げられる。 サンプルコード...
C/C++

printfとputsのパフォーマンス差を比較してみる

C言語を学習するときに、多くの場合、文字列の出力としてprintf関数を使うだろう。しかしながら、printfは強力な関数であり、特定の書式に従うことで比較的自由な文字列を出力することができるが、ただ単に固定の文字列を出力したいだけならオー...
C/C++

Xcode 7ではデフォルトでビルド時にビットコードが含まれる (2015年9月25日追記あり)

2015年9月9日にアップル社よりXcode 7 GM seed ((GM seedはAppleにおける製品候補版の名称で、アップデートの余地はあるものの、テストで深刻なバグがないことが確認された段階でそれが正式版になる)) が提供され、i...
C/C++

CとC++、C#、Javaにおけるenumの違い

C言語、C++、C#、Javaではいわゆる「列挙型」としてenumが使える。しかしながら、C言語とC++、C#、Javaのenumはそれぞれ別ものである。
C/C++

PaizaオンラインハッカソンVol.6に参加してみた(霧島京子ミッション, C言語)

今回はPaizaオンラインハッカソンVol.6に参加してみた(霧島京子ミッション, C++)をC言語で記述した場合のコードを上げてみた。一度C++で成功しているので、今回はそれほど苦労することはなかった。ただ、C++で使える強力なライブラリ...
C/C++

PaizaオンラインハッカソンVol.6に参加してみた(六村リオミッション, C言語)

今回はPaizaオンラインハッカソンVol.6に参加してみた(六村リオミッション, C++)をC言語で書いた場合の回答例とその解説を行いたい。六村リオミッションではその性質上、オブジェクト指向プログラミングの考え方ができるかどうかで楽になる...
C/C++

PaizaオンラインハッカソンVol.6に参加してみた(緑川つばめミッション, C言語)

現在行われているPaizaオンラインハッカソンVol.6で昨日まで1個ずつC++を選択した場合の回答例を上げたが、今回はPaizaオンラインハッカソンVol.6に参加してみた(緑川つばめミッション, C++)をC言語で記述したらどうなるのか...
C/C++

PaizaオンラインハッカソンVol.6に参加してみた(霧島京子ミッション, C++)

PaizaオンラインハッカソンVol.6に参加してみた(六村リオミッション, C++)とPaizaオンラインハッカソンVol.6に参加してみた(緑川つばめミッション, C++)に続いて、霧島京子ミッションにも挑戦してみた。個人的にはこれが一...
C/C++

PaizaオンラインハッカソンVol.6に参加してみた(緑川つばめミッション, C++)

PaizaオンラインハッカソンVol.6に参加してみた(六村リオミッション, C++)に続いて、緑川つばめミッションも行ってみた。こちらの方はかなりすっきりしたコードが書けるので、六村リオミッションが面倒な方はやってみよう。
C/C++

PaizaオンラインハッカソンVol.6に参加してみた(六村リオミッション, C++)

PaizaオンラインハッカソンVol.6が開始されたにて、PaizaオンラインハッカソンVol.6「女子高生プログラマーの大バトル! ~コボール文明の逆襲~」が開始したという記事を書いたが、今回は六村リオミッションを選択して、実際に書いてみ...