「printf」を含む日記 RSS

はてなキーワード: printfとは

2020-05-15

anond:20200515174536

変数メモリ上の番地に付ける名前から、&masudaを呼べば処理系がmasudaに付けたアドレスにあるバイトから次のNULLまでのデータが返るし、*masudaに書けば先頭が前後にズレるし、*masudaをmain()のエントリポイントに書き換えてprintf(masuda)すれば例外が飛ぶだろ

anond:20200515175307

unsigned int ptr = 0xMSDA;

printf(f);

→ MSDA

unsigned int *ptr = 0xMSDA;

printf(f);

→ Segmentation Fault

unsigned int *ptr = 0xMSDA;

printf(&f);

→ Segmentation Fault

anond:20200515174759

ようするに、何を指摘されているか?というと

int i;

関数ポインタ f = printfアドレスなど

としたとき

sscanf (i)などとするとして

printf(i)

printf(f)としたときのfにたいして、

iとおなじ変数だと教育していいか?という

anond:20200515173517

関数ポインタprintfアドレス

 

左辺でも右辺でもいいんだが

どうやったら、この値の意味論の値がprintfアドレス以外になるのか?というのと値そのものは変わるが それは変わっているというのか?

2020-03-06

プログラム

printfとかスペルミスってたか

printってなおしてあげたよ

こういう人が多い業界

文字でこの騒ぎ

もっと難しいアルゴリズム

1行変える 1文字変える

バケツソートバブルソートに変えられる

文字でいい

文字バケツソートバブルソートに変えられる業界

まり

なにかのコードバケツソートだとおもって改良するやつがい

そいつには バケツそーを知らなくてバブルソートに治すように

バケツソートに近いものバケツソートに治しちゃう タイプミスカン違い

2020-01-27

for(int i=0;less(i,100);i++){

for(int j=0;less(j,100);j++){

printf("%d\n",i*j);

}

}

ループ回数を10100回にするにはどうしたらよいか

2020-01-14

コンパイルチェックまでしたったで

C++11行のコード書いたよ!ブラウザ上でプログラミング・実行できるよ! コードhttps://paiza.io/projects/XDXoXTklarKuOTbWdzo5Kw?locale=en-us #paizaIO via @paizaIO_jp

int main(void){

// Your code here!

for(int i=0;i<10;i++){

printf(" ");

}

printf("***\n")

;}

anond:20200114135737

BOOL less(int a,int b){

if ( (a-b) >> 31 ){

return TRUE;

}else{

return FALSE;

}

for(int j=0;less(j,10);j++){

for(int i=0;less(i,j);i++)|

printf(" ");

}

printf("*\n");

}

2020-01-07

いまプログラムが組める環境までたどりつきにくい

for(int i=0;i<10;i++){

for(int j=0;j<=i;j++){

printf(".");

}

printf("\n");

}

基本はこれだけだ

for(int i=0;i<10;i++){

for(int j=0;j<=i;j++){

printf(".");

}

printf("\n");

Sleep(1000);

}

これでだいぶ、イメージがつかめてきたか

2019-12-22

anond:20191222194940

for(int i=0;less(i,7);i++){

  if(i==3){

    //you should not delete this code for some test. please read backlog XXXXXX.

    continue;

  }

  if(less(i,5)){

    printf("i=%d\n",i);

  }

}

2019-12-01

C言語で分からないところがあるので質問しま

以下のコードで出力されるものが異なってしまうのは何故なんでしょうか?

#include <stdio.h>

void main(){
  char  s[6]="aiueo";
  char* p = &s[0];
  //p ="X\0";
  p="aaaaaa";
  printf("%s;%s \n",s,p);
}

よろしくお願いいたします。

2019-10-25

数年前に卒業したHAL東京の話

こんな記事話題になっていた。

暇だからゲーム専門学校時代を振り返る - 昆布がないと開発できない。 http://donnpema6.hatenablog.com/entry/2019/10/23/004918

HAL東京は私の母校でもある。読んでいてとても懐かしくなった。

この記事を書かれた方と同じように自分卒業して思う事や学生時代を振り返ってみたくなったので書く。駄文ですが入学検討している高校生、在学中の方にこれからの参考になればと思う。

まずは私の情報について。

高校卒業上京HAL東京

学科ゲーム制作学科

現在大手ITにてモバイルゲームエンジニア(Unityメイン)

まず私はゲーム業界志望で入学してゲーム業界就職したパターン人間である

HAL東京ゲーム学科なんだからゲーム業界に行くのは当然ではと思われる方もいるかもしれないが残念ながら半数近く、またはそれ以上の人数がゲーム以外の業界に行く。

入学してから卒業までを簡単に紹介しよう

1年目

・冒頭で紹介した記事にもあった通り、HAL東京では前期・後期に別れて授業を行う。1年目は基礎を学ぶ。

・この基礎だが、プログラミング以外にもデザインコンピュータサイエンスなども行う。これは1年目の後期に改めて学科選択の機会があるからだ。実際にプログラミングやってみて自分に合ってないと考えた人はデザイン学科にも行けるというわけだ(最も、最初希望とは違う学科に入ってちゃんとその業界就職した人を私は知らない)

プログラミングの授業ではC言語を学ぶ。私は高校時代プログラミングなんて一切やっていなかったので初めて触れたのがCだった。printfHelloWorldしたりscanfでメモリ領域ぶっ壊したりしつつもプログラミングの基礎を学ぶ。 IDEVisualStudioだった。

コンピュータサイエンス系の授業では、基本情報技術者試験合格を目指し皆勉強する。HAL東京では基本情報技術者試験を取得していない場合、この授業が卒業まで続く。就職において資格を見る会社一定数いるのでこのカリキュラムは良いと思う。取得している場合Android開発やコンシューマゲーム機での開発授業などが選択できるようになっている。私は初の試験で無事合格したが卒業時でも取れてない人は一定数いた。馬鹿なんじゃないのか。

・1年目の後期から学科に別れた授業+コンピュータサイエンス系の授業といった感じで進む。

C言語コンソール文字を表示させてゲームを作るというのを1年目はやる。独自ライブラリが渡される。

文字だけで表現するのにこの時点で出来るやつと出来ない奴がはっきりとわかる。 優秀な人間自分でバックバッファ概念を構築したり、滑らかなアニメーションなどを実装している。凄い。当然彼らは誰もが知っているような大手ゲーム会社に今はいるはずだ。

・1年目の最後学内での制作物の展示イベントがある。そこで作ったゲームを展示するのだ。ここで出来ていない人はおそらく翌年には退学している。私は完成はしたものの拙い出来だった。反面、負けてられないなとは思った。

2年目

・2年目からDirectX使用した本格的なゲーム開発の授業がスタートする。またそれと並行してコンシューマゲーム開発の授業が始まる。私の世代ではNintendoWiiだった。

C言語の授業もC++の授業になり、クラス化などについて学ぶ。

コンシューマ開発の授業は基本的情報がない中やる。渡されるのはWii関数リファレンスの本だけ。あとは授業で教官から教えられつつ実装していく。

DirectXでは9を使用していた。Xライブラリのようなものは一切使わず、直でDirectXを触る。描画の仕組みなども学べるのでこの授業はとてもよかった。確か前期は2Dゲーム、後期は3Dゲームだった気がする。それぞれ個人開発で1本づつ作る。私はこの時に作った3Dゲーム結構面白く出来て自信がついた。

・2年目の後期ではWiiの開発でチーム制作を行う。チームは勝手に決められるが基本的に優秀な人がリーダーになる。チームによっては崩壊しているチームやギスギスしているところもあり、プログラミングできる人と出来ない人の差が露骨に出る。何人かはここで脱落し、退学する。

3年目

・3年目ではいよいよ就活に向けた準備とインターンが始まる

DirectXの授業は継続しておりCで作ってたものからC++で作るようになる。ここらあたりからかなり複雑なアルゴリズム(地面の起伏に応じた高度計算や正確な当たり判定の実装など)も学ぶ。

DirectXとは違うものとして、OpenGLの授業も始まった。OpenGLDirectXマルチプラットフォームを目指してゲームの開発を行う。またネットワークを使ったゲームOpenGLで開発したりもする。この授業では基本的自分で調べて進めていく。調べる力をつける。今思うと一番エンジニアとして大切なことが学べる授業だったと思う。

・先ほど書いた、基本情報合格していると選択授業でAndroidプログラミングなどもできる。

就活に備えたビジネスマナーなどの授業も始まる。その日はスーツを着て通学する。私はこの時点でスーツ着て働くのは論外だと強く感じるようになった。

・3年生のビッグイベントとして10月にインターンがある。これはHALゲーム会社IT企業に依頼する形で生徒を会社インターンとして参加させるというものである。当然ながらこれも出席率などに問題がある場合は参加できない。

インターンは1ヶ月間あり、ゲーム会社にいく人もいればデバッグ会社にいく人、IT企業にいく人様々である。どこにいくかは教官が決める。私はゲーム会社だったがかなり勉強にはなったしゲーム会社で働く雰囲気というものを知れたのでよかったかなと思う。

・3年後半からDirectX就職作品を作り始める。就職作品はいわゆる企業の人に見せる作品の事である。これは完全に個人で作るので人によって完成度はかなり違ってくる。中には商業作品のようなクオリティのものを完成させる人も出てくる。実力社会である

4年目

・4年目は卒業制作展と就職活動、産学連携の三つがメインとなる。

・私は4年になる頃には就活終わっていたのだが基本的に全てにおいて就活を優先する様になる。内定出るまではスーツで通学など、それ意味あるのか?

HALには学内企業説明会というシステムがあり、様々な会社が来校し企業説明特別選考の案内をしてくれる(任意参加だが就活中の人は実質強制参加である

・4年中盤くらいにはもうほとんどの人が就活を終えているが一部の終えていない人たちは延々と説明会に参加してはエントリーシートを書いていた。大変だなぁ。このくらいの時期になるともう学内企業説明会ゲーム会社はほぼ無い。自分で動け。

産学連携卒業制作ではチームを組み制作するのだが使用するグラフィックライブラリなどに指定はなく、プラットフォーム自由となる。そのため、DirectXOpenGLを学んでいても大抵のチームはUnityやUnrealEngineを使うことになる。

・4年目後半は卒業制作展にひたすら取り組む、この制作はとても私の中にも印象に残っている。正直楽しかった。好き勝手にみんなで面白ものを作れる。

さて、ここまで1〜4年の流れをざっくりと書いた。

次にHALについてよく聞く話、課題が多いという話にもついて触れておこう。

HAL東京では課題がまぁまぁな数が出る。

1科目年間20くらいは少なくとも出てる気がする。(規模はまちまちだが)

この課題だが課題一定数達成(承認という)していないと科目留年となってしまう。とはいえ教官自分がわかるまでサポートしてくれるので主体的に動けば落とすことは無いだろう。(私は4年間で1度も落とさなかった)

また出席率も見られる。確か80%切ったらアウトだった。

毎日しっかり通学して、出された課題をしっかりこなせれば基本的に力はつく様になっていたと思う。就活失敗していた人はハッキリ言ってこれが出来てない人が多かったイメージがある。

また授業は1コマ90分で最大1日5コマある

そのため1回休むだけで内容についていけなくなる恐れがある。しっかり授業は受けよう。

次に私の就活についても触れておこうと思う。

私は3年の中旬くらいから早く就活を終わらせたいと思っていた。また、コンシューマ業界は色々と魅力はあるが第一給料が安いところが多いし働く環境として良いとも思えない面が多かったので最初仕事モバイルゲーム業界がいいなと思っていた。

そのため早い段階で逆求人サイト登録したり、1on1面談イベント勉強会などにも参加する様になった。

個人的に今思うのが3年の中旬くらいの時期から動き出せたのが一番良かったなと思っている。勉強会などで大学生で同じ様にゲーム業界目指している人たちとも多く会ったりしているうちに、自分結構出来る方の人間なんだなと思う様になる。

正直HAL東京カリキュラムは異常で、普通にゲーム作りたいという人はOpenGLDirectXもやらない。直でそれらが扱える様になっているHAL生は業界的に結構貴重な人材になりうると思う。

描画の仕組みをわかった上でゲームエンジン使うのとそうじゃ無いのとでは全然違うんだなとこの時気づいた。HALの基礎から教える理念はとても大切だった。

私は趣味で別でDirectXゲーム作ってたりもしてたので、それを企業の人に見せたりもしていた。何かしら物を作りきるという経験を何回も積んでいるHAL生の評価は高い。(ちゃんと授業出てれば1本は作りきれるはず)

何社か逆求人で声がかかり、そのうち一番気になっていた会社と話しているうちにどんどん選考が進み、特に苦戦せずに2月くらいには内定が出ていた。私の就活はかなりあっさりと終わった。

モバイルゲーム業界IT業界は今かなり盛り上がってるのもあり年収もかなり良く、この結果にはかなり満足している。

最後に、私がHAL東京入学して良かったかどうか、という点について触れてこの駄文を終わらせようと思う。

結論から言うと私は入学して良かった。

もともと、ゲームは作りたいと思っていたが、何から始めたらいいのかわからなかった。

そんな中、専門学校で学ぶことで0→1が出来る様になったのはやはり大きかったと思う。

一度作り方を学べばあとはそこからどんどん自分から学んでいけた。

逆に、そう言う学び方が出来ない人はやめておいた方が良いと思う。

HAL東京在学中ずっと思っていたのが、学生間のレベルの差がとても激しいのだ。 無能か出来る奴のどっちかになるのだ。

自分積極的に学んでいける!出来る奴に絶対なってやる!と言うくらいの気合いがないとダメだと思う。

入学時にプログラミング経験がある人も一定数いるのだが卒業する頃には自分の方が書ける様になっていたし、結局のところ本人の努力次第である。決して入ればゲーム業界にいけるとか、そんな甘い話はない。

生半可な気持ち入学するのは出来る人たちの迷惑になるとハッキリ言っておこう。チーム制作の足手まといになってしまうだけである

自分自身が出来る奴になれればこんなに楽しい環境は無い。とても優秀な仲間と切磋琢磨できるのだから

2019-09-26

anond:20190926101553

そんな感じだった。

最初自作バイナリエディタで、バイナリ直接編集でどうにかしようとしてたんだけど、

900回くらい編集→実行を繰り返して、ようやく printf ができそうなアドレス空間アクセスできた。

ところが、突如登場した、

カーネルプロテクターっていうアンチウィルスソフトみたいなのが自動修復を試みてきてなかなか成功しない。

最後は、コンパイラーって子の力を借りて、遂にprintf できる実行ファイルが完成する。

エンター・キーを押すと同時に、画面一杯に、 HELLO WORLD文字が乱れ飛び、

劇場内は拍手喝采、同時にエンディングテーマが流れ出す。

パートでは、すべての出来事がVM(バーチャルマシン)上で行われていたことが明かされた。

2019-09-21

c言語勉強していて分からないとこがあります先生

キーボードから数を入力させて、その数が素数か否かを判断させるコード」なんだけど

#include <stdio.h>

int main(void)
{
    int num,i;

   printf("2以上の整数入力してください。");
   scanf("%d,&num");


   for(i=2; 以下num; i++){
       if(i == num){
            printf("%dは素数です。",num);
       }
       else if((num % i) == 0){
            printf("%dは素数ではありません。",num);l
            breakl;
      }
      }
    
     return 0;
}

これがそのコードの例文。で俺の疑問箇所なんですが

 for(i=2; i以下num; i++){
       if(i == num){
            printf("%dは素数です。",num);
       }

ここのコードでどうして変数「num」が素数である判断できるのかが良く分からないんです。

俺が馬鹿文系脳でプログラミングの才能0だからからないというのはほぼ確定なんだけど、それでもここのとこが理解できないとモヤモヤして夜も眠れなそうなのでどうか教えて下さい。

なぜこれで素数だと判断できるんだろう

2019-08-20

anond:20190820150724

printf("わさびある?: %d\n", isWasabiAvailable());
if ( isWasabiAvailable() ) {
 ...
}

デバッグログ有効版とリリース版で動作が違う…なぜだ…」

2019-05-07

C++に再挑戦してる

大学時代C++が嫌いだった。

というより最初Hello Worldでつまずいてそこでやめてしまった。

「なんでstd::coutなんだ?printfじゃダメなのか?どうしてstdio.hを使わないんだ?」

とどっちも使えるという状態がとても気持ち悪くて、結局拡張子をcppとしただけのベターCを使うだけだった。

リーナス・トーバルズC++使わないって言ってるらしいぞ。やっぱりできる人はC言語なんだ」などとも考えていたような気がする。

あれから幾年か経った今になって、仕事の都合上C++に触れることになった。

もう長い間CやC++で書かれたより高レイヤー位置するプログラミング言語ばかり触ってきたので今更感があったが、今もう一度勉強し直す機会を得たと前向きに捉えてやってみることにした。

実際やってみると、なるほどstd::coutはフォーマット指定子に寄らない分便利だなと素直に受け入れられた。

他にもファイルの読み込みにはfopenじゃなくifstreamを使うとか、いろんなものC++用に書きやす方法があるのだと知り、それを素直に受け入れられた。

大学時代はその素直さがなかった。年月は俺に素直さを与えた。

2019-04-14

アプリログユースケースが知りたい

ログとはここでは、特にprintf()やロギングライブラリを使いアプリに仕込まれた明示的な出力とする。

サーバーサイドのログ必要だと分かる。

攻撃来てるかとか気付けるし、ビッグデータとしてゴニョゴニョ解析できるし。知らんけど。

でもアプリログってどう使えばいいの?

バグが起きた時とか、基本的再現手順を元にデバッガーのブレイクポイントとか使うだけで、ログは実際全然見てない。

あとネットワーク解析ソフトと、アプリに埋め込む系のデバッグツールあれば十分って感じ?

役立つログなんて、デバッガーの調子が悪い時にコミットしないものを一瞬入れるくらいかなぁ?

バグが起きた時はQAとかから再現手順と一緒にコンソール出力も飛んでくる。

その中で例外出力は有用なことが多いんだけど、それはハンドリングされなかったのが出てるだけ。

ロギングライブラリを使って何段階もログレベル分けてやって得られたものがあまりないなあって最近思う。

2019-03-05

なぜ「Hello world」は誰が書いても高品質になるのか

品質ソフトウェアは変更が容易である

例としてこちらをご覧いただきたい。

/* Hello world */
#include <stdio.h>

int main(void) {
    printf("Hello, world!");
    return 0;
}

このコードは高品質である

理由は以下の通り。

  1. 設計シンプル
    何の分岐も判定もない。容易にC2カバレッジ100%にできるシンプルさ。
  2. 高凝集度、かつ低結合度
    変数を使っていないし、そもそも単一ブロック構成されているので結合のしようがない。
  3. 環境依存せず、移植性が高い
    標準ライブラリのみで構成されている。
  4. 適切に構造化されている
    そもそも構造と呼べる要素がない。
  5. 実行時エラーの恐れがない
    唯一、コンパイル時に検出できないのはprintf引数だが、例えここが"hellow world"になっていたとしてもプログラム問題なく実行できる。
ログイン ユーザー登録
ようこそ ゲスト さん