tacsheaven 2012-08-18 04:31:19

[C] %入れたらゴミが出るんですけど… このエントリーをはてなブックマークに追加

投稿者からのアピールポイント

C初心者によくある間違いですな…ただ、これが「なぜ間違いか」をきちんと説明できる、自称Cプログラマも少なかったりしますが。

// char* str は、他からわたってきていると思って下さい
printf(str);

コメント(6)

#1 yosilove 2012-08-18 13:38:17  

・・・?あぁそうかstrの中身がフォーマットとして認識されるってことは・・・

#2 HarpoonArrow 2012-08-18 13:46:19  

第二引数以降を与えなくてもスタックの下を覗きに行くんでしたっけ

#3 egtra 2012-08-19 15:31:10  

これはセキュリティホールになりかねないので、割とバカにできません。

IPA ISEC セキュア・プログラミング講座:C/C++言語編 第10章 著名な脆弱性対策:フォーマット文字列攻撃対策

#4 jkr_2255 2012-08-20 10:54:19  

書式を設定する必要がない(&行末改行が問題ない)なら、putsを使ったほうがいいような

#5 fresh_homepie 2013-01-20 11:01:21  

sprintf で同じことをやられたことがある。strcpy で事足りるというのに…。

#6 S_F__ 2013-12-22 11:45:54  

"%s",strなら・・・


このウンコードに臭った人は、こちらのウンコードにも臭ってます

[その他] 【CSS】結局何をどう表示させたいのか

このエントリーをはてなブックマークに追加

頭の中で何を考えてCSSを書いているのだ...

.hoge{
  color : #030303 ;
  border : ...

鑑賞する »

[C] すげーちゃんと動く!

このエントリーをはてなブックマークに追加

結合試験2日前に脱退したうんkプログラマ...

return 0;

鑑賞する »

[C] NULL と 8 の何故

このエントリーをはてなブックマークに追加

テストは通ってるけど、教科書からやり直し...

#define TO_STRING(n, str) \
  if(n != N...

鑑賞する »