- ベストアンサー
char*を初期化したいのですが
Cの標準関数だけで char*を初期化したいのですが どの様にすればいいのでしょうか? char* a = "aaaa"; char* b = "bbbb"; strcat( a, b );//"aaaabbbb"? とし使いまた後で aにまた値を入れ直したいので 初期化して再利用したいのですが どのようにすればいいのでしょうか? ポインタとかもうっすら(ほとんどわかりません) よろしくお願いいたします
- みんなの回答 (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で初期化可能です。
その他の回答 (1)
- momo_right
- ベストアンサー率10% (5/47)
char*型の変数=NULL; で初期化できませんでしたっけ。 ポインタ変数の初期化にはNULLを使用するような記憶があります。 間違いだったらすみません。
お礼
ありがとうございます NULLですね 一度やったのですが 上の方が言われるように 間違っていたので だめだったようです............ またやってみます
お礼
ありがとうございます 元々おかしかったのですね........ 勉強不足で恥ずかしいです 参考にさせていただきがんばります ありがとうございました