プロが教える店舗&オフィスのセキュリティ対策術

Cの標準関数だけで
char*を初期化したいのですが
どの様にすればいいのでしょうか?

char* a = "aaaa";
char* b = "bbbb";
strcat( a, b );//"aaaabbbb"?
とし使いまた後で
aにまた値を入れ直したいので
初期化して再利用したいのですが

どのようにすればいいのでしょうか?

ポインタとかもうっすら(ほとんどわかりません)
よろしくお願いいたします

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で初期化可能です。
    • good
    • 0
この回答へのお礼

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

お礼日時:2003/10/15 09:57

char*型の変数=NULL;



で初期化できませんでしたっけ。
ポインタ変数の初期化にはNULLを使用するような記憶があります。
間違いだったらすみません。
    • good
    • 0
この回答へのお礼

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

お礼日時:2003/10/15 09:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A