tkcomcom1is 2014-06-12 15:58:27

[C] なまじポインタを知ったつもりでカッコつけた結果がこれ このエントリーをはてなブックマークに追加

投稿者からのアピールポイント

ある文字列を使う処理があったのですが、正しく動きません。
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;

}

使い方ヒント: 「これは臭う」という行を見付けたら、各行のsmellをクリックしてマーキングしておきましょう(要Twitter OAuth認証)

コメント(1)

#1 3higo3 2014-06-06 04:22:39  

この処理、ポインター作ってんだか、配列作ってんだか…って事ですね

コメント投稿には、twitter認証が必要です。

Twitter認証

このウンコードに臭った人は、こちらのウンコードにも臭ってます

[その他] HOW TO ABC..

このエントリーをはてなブックマークに追加

実際にあった某システムの超重要なマスター...

create table item_master (
 A varchar(2...

鑑賞する »

[C] 殺意を覚えたコメント

このエントリーをはてなブックマークに追加

このコメントを書いた人はこの職業に向いて...

/*  よくわからないからNULL  */
foo( NULL );

鑑賞する »

[C] NULL と 8 の何故

このエントリーをはてなブックマークに追加

テストは通ってるけど、教科書からやり直し...

#define TO_STRING(n, str) \
  if(n != N...

鑑賞する »