У меня проблема с WORD (2-байтовые целые числа без знака).Вот команды, которые я обычно запускаю
import mySimLib
mySimLib.init()
strPtr = mySimLib.strInit( 200 ) #where 200 is the number of characters I want in the
#string. strInit returns a malloc'd pointer
wPtr = mySimLib.wordInit () # where wordInit returns a malloc'd pointer to a WORD.
mySimLib.Write ("Title", "Data", 4) # 4 is the number of bytes required to store data
mySimLib.Search ("Title", strPtr, 200, wPtr) #Search finds the record with same title,
#copies the data into strPtr up to the number of bytes in the record - as long as
#the number of bytes in the strPtr is greater.
mySimLib.printWord (wPtr) #Since I cannot use python to dereference word pointers, I call a C function to print it out.
В этот момент моя программа падает.Выдает исключение (нарушение чтения) или какую-либо отслеживаемую ошибку объекта GC.Дело в том, что у меня есть функция строковой печати, которая никогда не перестает работать, когда я ее печатаю.Когда я пытаюсь получить слово для печати, я получаю ошибки.
Это моя функция инициации wordptr:
unsigned int * wordInit () {
unsigned int * d = malloc ( sizeof ( unsigned int ) );
*d = 0;
return d;
}
Это моя функция печати:
void wordPrint (unsigned int * d){
printf ("\nWptr: %d",*d);
}
Я понятия не имею, что я делаю здесь неправильно, но эти сбои очень беспорядочные и раздражающие.