で済まないんだよ!
コンパイラが古いせいで普通にコンパイルが通っちゃうから、余計に性質が悪い。
そして、あちこちで当たり前のように値を取得してるから、もう何も信用できない。
コード中の※は投稿者による注釈です。
/*
* バッファをコピーする。
* char *src コピー元バッファ
* char *dst コピー先バッファ
* int size コピーサイズ
*
* memcpyと同じだが、引数がおかしいときはエラーコードを返すので、基本的にはこれを使うこと。
*/
int copy_buffer(char *src, char *dst, int size) {
int i;
if (size <= 0) {
return SIZE_ERROR;
// ※SIZE_ERRORは、あるインクルードヘッダに0以外の数値として#defineされています。
}
for (i = 0; i < size; i++) {
dst[i] = src[i];
}
}
// 背景を描画する
void display_back_block_image() {
char* image_1;
char* image_2;
char* image_3;
char* image_4;
char* disp_image;
int height[4];
int width[4];
// ※(中略)、上の変数で色々初期化をやっています。
// 1枚目の絵を描画する。失敗したらエラーを出して何も表示しない。
if (copy_buffer(image_1, disp_image, height[0]*width[0])) {
display_error(IMAGE_NOT_FOUND);
return;
// ※display_errorは、エラーを表示する関数です。
// ※IMAGE_NOT_FOUNDは、あるインクルードヘッダに0以外の数値として#defineされています。
}
display_image(disp_image, width[0], height[0])
// ※display_imageは、1枚の絵を描画する関数です。
// 2枚目の絵を描画する。失敗したらエラーを出して何も表示しない。
if (copy_buffer(image_2, disp_image, height[1]*width[1])) {
display_error(IMAGE_NOT_FOUND);
return;
}
display_image(disp_image, width[1], height[1])
// 3枚目の絵を描画する。失敗したらエラーを出して何も表示しない。
if (copy_buffer(image_3, disp_image, height[2]*width[2])) {
display_error(IMAGE_NOT_FOUND);
return;
}
display_image(disp_image, width[2], height[2])
// 4枚目の絵を描画する。失敗したらエラーを出して何も表示しない。
if (copy_buffer(image_4, disp_image, height[3]*width[3])) {
display_error(IMAGE_NOT_FOUND);
return;
}
display_image(disp_image, width[3], height[3])
}
使い方ヒント: 「これは臭う」という行を見付けたら、各行の
をクリックしてマーキングしておきましょう(要Twitter OAuth認証)
コメント投稿には、twitter認証が必要です。
Twitter認証