char para_name[25];
strcpy(para_name, "Para = no_geo_cursor_process");
// 1 2
// 12345678901234567890123456789 (one extra for the NULL).
Это одна вещь, которая, вероятно, не будет работать.Это неопределенное поведение, если вы пишете после конца массива (вы не можете положить двадцать девять бисквитов в форму для печенья, построенную за двадцать пять (a) )
Увеличить размер1008 * для решения этой проблемы.
Причина, по которой может работать на некоторых системах, заключается в том, что одним из возможных результатов неопределенного поведения является то, что оно просто работает.Конечно, это не очень хорошая идея.Вам следует избегать этого как можно больше.
Кроме того, как указано в комментариях, у вас есть несколько строк, в которых вы предоставляете строки формата printf
без соответствующих значений:
printf("SQL Select Error in - get_update_timestamp: %s\n");
printf("Cursor Opened: %s\n");
Это также неопределенное поведение и, вероятно, вызовет проблемы, обычно с использованием любых значений, которые были помещены в стек в качестве указателя строки.Вы можете просто удалить ошибочную %s
из строки или, альтернативно, выяснить, какую строку вы хотите включить в сообщение, и добавить ее к аргументам printf
.
(а) Если, конечно, вы не хотите, чтобы печенье рухнуло: -)