Скорее всего, это глупый вопрос для начинающих. Для начала вот мой C-код [сегмент]:
while ((row = mysql_fetch_row(result)))
{
//printf("RecordID:%s\nValue:%s\n", row[0], row[1]);
//printf("Name:%s\n", row[0]);
//printf("\n");
}
//Row[0] is now the only row I'm pulling from the SELECT statement
// it is simply a varchar field with one row in this example, "Bob"
// My goal is simply to be able to change the value in the dB and
// the next time this C program is executed, the new data will appear
// on my little LCD. (It's a RPi/GPIO project).
#define MYDATA row[0];
printf("Name:%c\n",MYDATA);
//printf("Name:$s\n",row[0]; THIS WORKED JUST FINE...FOR THE PRINTF ONLY
//lcdPrintf(lcdhd,%s",row[0] <-- this is whats giving me the Segmentation fault error
//lcdPrintf(lcdhd,"%s",blah); <-- so I should close the db and use a variable.
//blah = row[0] <-- but C has no clue what I'm asking it to do here.
lcdPrintf(lcdhd,"Hi there") <-- that works fine (so its ONLY a variable setting issue here)
mysql_free_result(result);
mysql_close(con);
Очевидно, перед этим есть код. Открывает локальный дБ, захватывает данные и т. Д. Эта часть работает нормально, и фактически printf работает нормально, когда я установил его в $ s, row [0]. Проблема в том, что когда я пытаюсь использовать те же самые данные varchar (эти данные просто "Bob" просто для тестирования) в lcdPrintf, он выдает ошибку ошибки сегментации. Я предполагаю, что получаю эту ошибку ТОЛЬКО для этого, потому что это функция, направленная через мой GPIO / Raspberry Pi на крошечный ЖК-экран. И просто так никто не спрашивает об этом. Да, все RPi / GPIO тоже работает нормально. Работает отлично, пока я не переверну эту строку с a на b. Что в мире я здесь делаю не так? Я посмотрел 100 проблем с установкой переменных в C (что и побудило меня к использованию DEFINE для него, что, как я знаю, глупо. Пожалуйста, помогите!