Здравствуйте, у меня странная проблема с sprintf
. Вот мой код:
void draw_number(int number,int height,int xpos,int ypos){
char string_buffer[5]; //5000 is the maximum score, hence 4 characters plus null character equals 5
printf("Number - %i\n",number);
sprintf(string_buffer,"%i",number); //Get string
printf("String - %s\n",string_buffer);
int y_down = ypos + height;
for (int x = 0; x < 5; x++) {
char character = string_buffer[x];
if(character == NULL){ //Blank characters occur at the end of the number from spintf. Testing with NULL works
break;
}
int x_left = xpos+height*x;
int x_right = x_left+height;
GLfloat vertices[] = {x_left,ypos,x_right,ypos,x_left,y_down,x_right,y_down};
rectangle2d(vertices, number_textures[atoi(strcat(&character,"\0"))], full_texture_texcoords);
}
}
При вызовах printf
номера печатаются успешно, а номера выводятся, как ожидается Когда я убираю их, я, конечно, не могу просмотреть вывод и сравнить его, но числа отображаются неправильно. Я предполагаю, что sprintf
как-то ломается.
Это также происходит с NSLog
. Добавление NSLog
в любую точку программы может привести к поломке или исправлению функции.
Что происходит на земле?
Используется Objective-C с iOS 4 SDK.
Спасибо за любой ответ.