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

mallocで取得したchar型メモリを、ふつうはどう初期化するのかよくわからん。

ので、sprintfで初期化しているのですが。

あー。先頭アドレスにnull文字\0を入れればいいのか・・。

*str = ‘\0’;

みたいに。

自己解決。

あとは、sprintfでプリント先と同じものを引数に使っても動くみたい。

strcat代わりにできますね。


int main(){

 char *str;

 str = (char*)malloc(10);

 sprintf(str,"");

 sprintf(str,"%s %d", str,1);

 sprintf(str, "%s %d", str ,2);

 printf("%s",str);

 return 0;

}

codepadでコードを試すとき、直打ちだとTABを入れにくいから、自然とタブ代わりに1スペースを入れるようになるなー。

gccで最適化オプションをつけたら、出力が変わるんですが・・・・・・・・・。

-O1から-O4までどれでも。

おいおい。

私のコードの書き方が悪いのか・・。

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

コメントを残す