ある文字列を使う処理があったのですが、正しく動きません。
「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; }
使い方ヒント: 「これは臭う」という行を見付けたら、各行のをクリックしてマーキングしておきましょう(要Twitter OAuth認証)
コメント投稿には、twitter認証が必要です。
Twitter認証
この処理、ポインター作ってんだか、配列作ってんだか…って事ですね