ある文字列を使う処理があったのですが、正しく動きません。
「str[p]が正しくないの?それともpの計算方法が間違っているの?」
と思って、デバッグ用のコードを追加したりして散々悩んでいたら、こんなコードを書いていたというオチ。
何してんだか。(´・ω・`)
コード中の※は投稿者による注釈です。
// ※一時的に文字列を格納する配列
char * str[64];
void make_2_number_string(short number_1, short number_2) {
// ※デバッグとして追加していた文
// str[0] = 0;
// str[1] = 0;
// str[2] = 0;
// str[3] = 0;
// ※この段落がメインの処理。
// ※以下自前の関数がありますが、とある制約で、Cの標準ライブラリが使えません。
int p = 0;
// ※自前のitoa。
p += my_itoa(str, number_1);
p += my_itoa(str, number_2);
// ※自前のstrcpy。templateはすでに用意されている定型の文字列(char型配列)。
string_copy(str, template, p);
// ※デバッグとして追加していた文
str[p] = 0;
str[p+1] = 0;
// str[p+2] = 0;
// str[p+3] = 0;
}
この処理、ポインター作ってんだか、配列作ってんだか…って事ですね