• ベストアンサー

char*を初期化したいのですが

Cの標準関数だけで char*を初期化したいのですが どの様にすればいいのでしょうか? char* a = "aaaa"; char* b = "bbbb"; strcat( a, b );//"aaaabbbb"? とし使いまた後で aにまた値を入れ直したいので 初期化して再利用したいのですが どのようにすればいいのでしょうか? ポインタとかもうっすら(ほとんどわかりません) よろしくお願いいたします

質問者が選んだベストアンサー

  • ベストアンサー
  • orion6619
  • ベストアンサー率41% (5/12)
回答No.2

> char* a = "aaaa"; > char* b = "bbbb"; > strcat( a, b );//"aaaabbbb"? この上のコードは間違っていますよ。 変数a、bに入っているのはあくまでも文字列の"ポインタ"です。 従いまして、strcat( a, b );とすると、aがさしているメモリは5バイトしかないのでメモリを破壊してしまいます。 static char sza[] = "aaaa"; static char szb[] = "bbbb"; char szBuffer[256]; char* a = szBuffer; strcpy (a, sza); strcat (a, szb); としないとだめです。 またポインタ変数はNULLで初期化可能です。

gotyan
質問者

お礼

ありがとうございます 元々おかしかったのですね........ 勉強不足で恥ずかしいです 参考にさせていただきがんばります ありがとうございました

その他の回答 (1)

回答No.1

char*型の変数=NULL; で初期化できませんでしたっけ。 ポインタ変数の初期化にはNULLを使用するような記憶があります。 間違いだったらすみません。

gotyan
質問者

お礼

ありがとうございます NULLですね 一度やったのですが 上の方が言われるように 間違っていたので だめだったようです............ またやってみます

関連するQ&A