Umm.... you aren't setting the memblock value until after finishing the while loop, which is only finished when the GDK loop condition is false. Therefore, the system will likely not even register the dbWriteMemblockByte function call, and even if it did, the program will just terminate directly afterwards, not telling you whether the function succeeded or not.
This should probably work:
void DarkGDK() {
dbSyncOn();
dbSyncRate(60);
dbMakeMemblock(1, 1, 1);
// Also, you have to write to position 0, not one here, since
// only one byte is allocated.
dbWriteMemblockByte(1, 0, 1);
dbPrintC("Memblock (0) value: ");
dbPrint(dbMemblockByte(1, 1));
dbSync();
dbSync(); // Yes, you have to do it twice at the very beginning to actually render
dbWaitKey();
while (LoopGDK()){
dbSync();
}
return;
}