Título: SQLite3 Amalgamation y C: Visor de Archivos y URLs al Azar Publicado por: ~ en 4 Abril 2016, 21:07 pm filesopen Espera_aleatoria_minima Espera_aleatoria_maxima Nombre_base_de_datos Numero_de_fila_de_configuracion
Aquí tengo un programa de consola que escribí, que abre automáticamente y al azar archivos locales o URLs tomadas de una base de datos SQLite3 la cual maneja por sí misma usando la librería de Amalgamación de SQLite3. Está completamente escrita en C y funciona bajo Windows (aunque tal vez pueda funcionar bajo Wine). Aquí está el binario compilado: FILESOPEN.EXE (http://archive.org/download/ComputerProgramming/Applications/_OWN_/Text_Recordings/Random_File_Opener/filesopen.exe) Aquí se puede ver y aprender a escribir un programa en C básico para manejar una base de datos SQLite3: >> Grabación de Texto para el Visor Aleatorio de Archivos y URLs << (http://archive.org/download/ComputerProgramming/Applications/_OWN_/Text_Recordings/Random_File_Opener/RandomFileOpener.html# Random File Opener/src/filesopen.c) La estructura documentada y el uso de la base de datos está contenido en dicha grabación de la escritura del código. Se puede hacer una prueba del funcionamiento con la siguiente base de datos que contiene más de 2 millones de nombres de dominio provenientes de la lista diaria de 1 millón de sitios más importantes de Alexa: domains_alexaranks.db (http://archive.org/download/ComputerProgramming/domains_alexaranks.db) Para correr el programa, solo se necesita el siguiente comando: Código: filesopen 1 1 domains_alexaranks.db 1 Aquí está el código principal (compilado bajo MinGW): Código
Título: Re: SQLite3 Amalgamation y C: Visor de Archivos y URLs al Azar Publicado por: fary en 5 Abril 2016, 09:33 am Es bueno tener esta serie de ejemplos, gracias:)
Título: Re: SQLite3 Amalgamation y C: Visor de Archivos y URLs al Azar Publicado por: HardForo en 15 Abril 2016, 02:01 am Bueno, lo he probado y no me ha funcionado :-\
Código
Me genera todo este choclo de errores: Citar In file included from SQLite3-Amalgamation_example.c:5:0: c:\mingw\include\sqlite3.c: In function 'void strftimeFunc(sqlite3_context*, int, sqlite3_value**)': c:\mingw\include\sqlite3.c:17689:40: error: invalid conversion from 'void*' to 'char*' [-fpermissive] z = sqlite3DbMallocRawNN(db, (int)n); ^ c:\mingw\include\sqlite3.c: In function 'void* sqlite3MemMalloc(int)': c:\mingw\include\sqlite3.c:18592:7: error: invalid conversion from 'void*' to 'sqlite3_int64* {aka long long int*}' [- ermissive] p = SQLITE_MALLOC( nByte+8 ); ^ c:\mingw\include\sqlite3.c: In function 'void* sqlite3MemRealloc(void*, int)': c:\mingw\include\sqlite3.c:18665:7: error: invalid conversion from 'void*' to 'sqlite3_int64* {aka long long int*}' [- ermissive] p = SQLITE_REALLOC(p, nByte+8 ); ^ In file included from SQLite3-Amalgamation_example.c:5:0: c:\mingw\include\sqlite3.c: In function 'sqlite3_mutex* winMutexAlloc(int)': c:\mingw\include\sqlite3.c:21842:41: error: invalid conversion from 'void*' to 'sqlite3_mutex*' [-fpermissive] p = sqlite3MallocZero( sizeof(*p) ); ^ c:\mingw\include\sqlite3.c: In function 'char* sqlite3DbStrDup(sqlite3*, const char*)': c:\mingw\include\sqlite3.c:22757:39: error: invalid conversion from 'void*' to 'char*' [-fpermissive] zNew = sqlite3DbMallocRaw(db, (int)n); ^ c:\mingw\include\sqlite3.c: In function 'char* sqlite3DbStrNDup(sqlite3*, const char*, u64)': c:\mingw\include\sqlite3.c:22770:38: error: invalid conversion from 'void*' to 'char*' [-fpermissive] zNew = sqlite3DbMallocRawNN(db, n+1); ^ c:\mingw\include\sqlite3.c: In function 'void sqlite3VXPrintf(StrAccum*, const char*, va_list)': c:\mingw\include\sqlite3.c:23266:47: error: invalid conversion from 'void*' to 'char*' [-fpermissive] zOut = zExtra = sqlite3Malloc( nOut ); ^ c:\mingw\include\sqlite3.c:23377:71: error: invalid conversion from 'void*' to 'char*' [-fpermissive] = sqlite3Malloc( MAX(e2,0)+(i64)precision+(i64)width+15 ); ^ c:\mingw\include\sqlite3.c:23525:29: error: invalid conversion from 'const char*' to 'char*' [-fpermissive] if( isnull ) escarg = (xtype==etSQLESCAPE2 ? "NULL" : "(NULL)"); ^ c:\mingw\include\sqlite3.c:23533:45: error: invalid conversion from 'void*' to 'char*' [-fpermissive] bufpt = zExtra = sqlite3Malloc( n ); ^ c:\mingw\include\sqlite3.c:23568:48: error: cannot convert 'SrcList::SrcList_item*' to 'SrcList_item*' in initializati struct SrcList_item *pItem = &pSrc->a[k]; ^ c:\mingw\include\sqlite3.c:23571:18: error: invalid use of incomplete type 'struct SrcList_item' if( pItem->zDatabase ){ ^ In file included from SQLite3-Amalgamation_example.c:5:0: c:\mingw\include\sqlite3.c:14473:59: error: forward declaration of 'struct SrcList_item' SQLITE_PRIVATE int sqlite3IndexedByLookup(Parse *, struct SrcList_item *); ^ In file included from SQLite3-Amalgamation_example.c:5:0: c:\mingw\include\sqlite3.c:23572:49: error: invalid use of incomplete type 'struct SrcList_item' sqlite3StrAccumAppendAll(pAccum, pItem->zDatabase); ^ In file included from SQLite3-Amalgamation_example.c:5:0: c:\mingw\include\sqlite3.c:14473:59: error: forward declaration of 'struct SrcList_item' SQLITE_PRIVATE int sqlite3IndexedByLookup(Parse *, struct SrcList_item *); ^ In file included from SQLite3-Amalgamation_example.c:5:0: c:\mingw\include\sqlite3.c:23575:47: error: invalid use of incomplete type 'struct SrcList_item' sqlite3StrAccumAppendAll(pAccum, pItem->zName); ^ In file included from SQLite3-Amalgamation_example.c:5:0: c:\mingw\include\sqlite3.c:14473:59: error: forward declaration of 'struct SrcList_item' SQLITE_PRIVATE int sqlite3IndexedByLookup(Parse *, struct SrcList_item *); ^ In file included from SQLite3-Amalgamation_example.c:5:0: c:\mingw\include\sqlite3.c: In function 'int sqlite3StrAccumEnlarge(StrAccum*, int)': c:\mingw\include\sqlite3.c:23638:53: error: invalid conversion from 'void*' to 'char*' [-fpermissive] zNew = sqlite3DbRealloc(p->db, zOld, p->nAlloc); ^ c:\mingw\include\sqlite3.c:23640:47: error: invalid conversion from 'void*' to 'char*' [-fpermissive] zNew = sqlite3_realloc64(zOld, p->nAlloc); ^ c:\mingw\include\sqlite3.c: In function 'char* sqlite3StrAccumFinish(StrAccum*)': c:\mingw\include\sqlite3.c:23722:55: error: invalid conversion from 'void*' to 'char*' [-fpermissive] p->zText = sqlite3DbMallocRaw(p->db, p->nChar+1 ); ^ c:\mingw\include\sqlite3.c: In function 'void sqlite3_randomness(int, void*)': c:\mingw\include\sqlite3.c:24479:25: error: invalid conversion from 'void*' to 'unsigned char*' [-fpermissive] unsigned char *zBuf = pBuf; ^ c:\mingw\include\sqlite3.c: In function 'int sqlite3ThreadCreate(SQLiteThread**, void* (*)(void*), void*)': c:\mingw\include\sqlite3.c:24737:31: error: invalid conversion from 'void*' to 'SQLiteThread*' [-fpermissive] p = sqlite3Malloc(sizeof(*p)); ^ c:\mingw\include\sqlite3.c: In function 'int sqlite3VdbeMemTranslate(Mem*, u8)': c:\mingw\include\sqlite3.c:25132:42: error: invalid conversion from 'void*' to 'unsigned char*' [-fpermissive] zOut = sqlite3DbMallocRaw(pMem->db, len); ^ c:\mingw\include\sqlite3.c: In function 'char* sqlite3Utf16to8(sqlite3*, const void*, int, u8)': c:\mingw\include\sqlite3.c:25299:56: error: invalid conversion from 'const void*' to 'const char*' [-fpermissive] sqlite3VdbeMemSetStr(&m, z, nByte, enc, SQLITE_STATIC); ^ In file included from SQLite3-Amalgamation_example.c:5:0: c:\mingw\include\sqlite3.c:16306:20: note: initializing argument 2 of 'int sqlite3VdbeMemSetStr(Mem*, const char*, int u8, void (*)(void*))' SQLITE_PRIVATE int sqlite3VdbeMemSetStr(Mem*, const char*, int, u8, void(*)(void*)); ^ In file included from SQLite3-Amalgamation_example.c:5:0: c:\mingw\include\sqlite3.c: In function 'int sqlite3Utf16ByteLen(const void*, int)': c:\mingw\include\sqlite3.c:25318:28: error: invalid conversion from 'const void*' to 'const unsigned char*' [-fpermiss e] unsigned char const *z = zIn; ^ c:\mingw\include\sqlite3.c: In function 'void insertElement(Hash*, _ht*, HashElem*)': c:\mingw\include\sqlite3.c:26935:19: error: invalid use of incomplete type 'struct _ht' pHead = pEntry->count ? pEntry->chain : 0; ^ c:\mingw\include\sqlite3.c:26930:10: error: forward declaration of 'struct _ht' struct _ht *pEntry, /* The entry into which pNew is inserted */ ^ c:\mingw\include\sqlite3.c:26935:35: error: invalid use of incomplete type 'struct _ht' pHead = pEntry->count ? pEntry->chain : 0; ^ c:\mingw\include\sqlite3.c:26930:10: error: forward declaration of 'struct _ht' struct _ht *pEntry, /* The entry into which pNew is inserted */ ^ c:\mingw\include\sqlite3.c:26936:11: error: invalid use of incomplete type 'struct _ht' pEntry->count++; ^ c:\mingw\include\sqlite3.c:26930:10: error: forward declaration of 'struct _ht' struct _ht *pEntry, /* The entry into which pNew is inserted */ ^ c:\mingw\include\sqlite3.c:26937:11: error: invalid use of incomplete type 'struct _ht' pEntry->chain = pNew; ^ c:\mingw\include\sqlite3.c:26930:10: error: forward declaration of 'struct _ht' struct _ht *pEntry, /* The entry into which pNew is inserted */ ^ c:\mingw\include\sqlite3.c: In function 'int rehash(Hash*, unsigned int)': c:\mingw\include\sqlite3.c:26967:33: error: invalid application of 'sizeof' to incomplete type '_ht' if( new_size*sizeof(struct _ht)>SQLITE_MALLOC_SOFT_LIMIT ){ ^ c:\mingw\include\sqlite3.c:26968:58: error: invalid application of 'sizeof' to incomplete type '_ht' new_size = SQLITE_MALLOC_SOFT_LIMIT/sizeof(struct _ht); ^ c:\mingw\include\sqlite3.c:26982:67: error: invalid application of 'sizeof' to incomplete type '_ht' new_ht = (struct _ht *)sqlite3Malloc( new_size*sizeof(struct _ht) ); ^ c:\mingw\include\sqlite3.c:26987:10: error: cannot convert '_ht*' to 'Hash::_ht*' in assignment pH->ht = new_ht; ^ c:\mingw\include\sqlite3.c:26988:70: error: invalid application of 'sizeof' to incomplete type '_ht' pH->htsize = new_size = sqlite3MallocSize(new_ht)/sizeof(struct _ht); ^ c:\mingw\include\sqlite3.c:26989:47: error: invalid application of 'sizeof' to incomplete type '_ht' memset(new_ht, 0, new_size*sizeof(struct _ht)); ^ c:\mingw\include\sqlite3.c:26993:32: error: invalid use of incomplete type 'struct _ht' insertElement(pH, &new_ht[h], elem); ^ c:\mingw\include\sqlite3.c:26930:10: error: forward declaration of 'struct _ht' struct _ht *pEntry, /* The entry into which pNew is inserted */ ^ c:\mingw\include\sqlite3.c: In function 'HashElem* findElementWithHash(const Hash*, const char*, unsigned int*)': c:\mingw\include\sqlite3.c:27014:12: error: cannot convert 'Hash::_ht*' to '_ht*' in assignment pEntry = &pH->ht[h]; ^ c:\mingw\include\sqlite3.c:27015:18: error: invalid use of incomplete type 'struct _ht' elem = pEntry->chain; ^ c:\mingw\include\sqlite3.c:26930:10: error: forward declaration of 'struct _ht' struct _ht *pEntry, /* The entry into which pNew is inserted */ ^ c:\mingw\include\sqlite3.c:27016:19: error: invalid use of incomplete type 'struct _ht' count = pEntry->count; ^ c:\mingw\include\sqlite3.c:26930:10: error: forward declaration of 'struct _ht' struct _ht *pEntry, /* The entry into which pNew is inserted */ ^ c:\mingw\include\sqlite3.c: In function 'void removeElementGivenHash(Hash*, HashElem*, unsigned int)': c:\mingw\include\sqlite3.c:27051:12: error: cannot convert 'Hash::_ht*' to '_ht*' in assignment pEntry = &pH->ht[h]; ^ c:\mingw\include\sqlite3.c:27052:15: error: invalid use of incomplete type 'struct _ht' if( pEntry->chain==elem ){ ^ c:\mingw\include\sqlite3.c:26930:10: error: forward declaration of 'struct _ht' struct _ht *pEntry, /* The entry into which pNew is inserted */ ^ c:\mingw\include\sqlite3.c:27053:13: error: invalid use of incomplete type 'struct _ht' pEntry->chain = elem->next; ^ c:\mingw\include\sqlite3.c:26930:10: error: forward declaration of 'struct _ht' struct _ht *pEntry, /* The entry into which pNew is inserted */ ^ c:\mingw\include\sqlite3.c:27055:11: error: invalid use of incomplete type 'struct _ht' pEntry->count--; ^ c:\mingw\include\sqlite3.c:26930:10: error: forward declaration of 'struct _ht' struct _ht *pEntry, /* The entry into which pNew is inserted */ ^ c:\mingw\include\sqlite3.c: In function 'void* sqlite3HashInsert(Hash*, const char*, void*)': c:\mingw\include\sqlite3.c:27125:54: error: cannot convert 'Hash::_ht*' to '_ht*' for argument '2' to 'void insertElem t(Hash*, _ht*, HashElem*)' insertElement(pH, pH->ht ? &pH->ht[h] : 0, new_elem); ^ c:\mingw\include\sqlite3.c: In function 'WCHAR* winUtf8ToUnicode(const char*)': c:\mingw\include\sqlite3.c:36937:69: error: invalid conversion from 'void*' to 'LPWSTR {aka wchar_t*}' [-fpermissive] zWideFilename = sqlite3MallocZero( nChar*sizeof(zWideFilename[0]) ); ^ c:\mingw\include\sqlite3.c: In function 'char* winUnicodeToUtf8(LPCWSTR)': c:\mingw\include\sqlite3.c:36962:40: error: invalid conversion from 'void*' to 'char*' [-fpermissive] zFilename = sqlite3MallocZero( nByte ); ^ c:\mingw\include\sqlite3.c: In function 'WCHAR* winMbcsToUnicode(const char*)': c:\mingw\include\sqlite3.c:36992:69: error: invalid conversion from 'void*' to 'LPWSTR {aka wchar_t*}' [-fpermissive] zMbcsFilename = sqlite3MallocZero( nByte*sizeof(zMbcsFilename[0]) ); ^ c:\mingw\include\sqlite3.c: In function 'char* winUnicodeToMbcs(LPCWSTR)': c:\mingw\include\sqlite3.c:37021:40: error: invalid conversion from 'void*' to 'char*' [-fpermissive] zFilename = sqlite3MallocZero( nByte ); ^ c:\mingw\include\sqlite3.c: In function 'int winOpenSharedMemory(winFile*)': c:\mingw\include\sqlite3.c:38920:37: error: invalid conversion from 'void*' to 'winShm*' [-fpermissive] p = sqlite3MallocZero( sizeof(*p) ); ^ c:\mingw\include\sqlite3.c:38923:60: error: invalid conversion from 'void*' to 'winShmNode*' [-fpermissive] pNew = sqlite3MallocZero( sizeof(*pShmNode) + nName + 17 ); ^ c:\mingw\include\sqlite3.c: In function 'int winShmMap(sqlite3_file*, int, int, int, volatile void**)': c:\mingw\include\sqlite3.c:39255:54: error: invalid use of incomplete type 'struct winShmMap(sqlite3_file*, int, int, t, volatile void**)::ShmRegion' pShmNode->aRegion, (iRegion+1)*sizeof(apNew[0]) ^ c:\mingw\include\sqlite3.c:39220:12: error: forward declaration of 'struct winShmMap(sqlite3_file*, int, int, int, vol ile void**)::ShmRegion' struct ShmRegion *apNew; /* New aRegion[] array */ ^ c:\mingw\include\sqlite3.c:39255:55: error: invalid application of 'sizeof' to incomplete type 'winShmMap(sqlite3_file int, int, int, volatile void**)::ShmRegion' pShmNode->aRegion, (iRegion+1)*sizeof(apNew[0]) ^ c:\mingw\include\sqlite3.c:39261:23: error: cannot convert 'winShmMap(sqlite3_file*, int, int, int, volatile void**):: mRegion*' to 'winShmNode::ShmRegion*' in assignment pShmNode->aRegion = apNew; ^ c:\mingw\include\sqlite3.c: In function 'int winGetTempname(sqlite3_vfs*, char**)': c:\mingw\include\sqlite3.c:39685:34: error: invalid conversion from 'void*' to 'char*' [-fpermissive] zBuf = sqlite3MallocZero( nBuf ); ^ c:\mingw\include\sqlite3.c:39794:62: error: invalid conversion from 'void*' to 'LPWSTR {aka wchar_t*}' [-fpermissive] LPWSTR zWidePath = sqlite3MallocZero( nMax*sizeof(WCHAR) ); ^ c:\mingw\include\sqlite3.c:39822:47: error: invalid conversion from 'void*' to 'char*' [-fpermissive] char *zMbcsPath = sqlite3MallocZero( nMax ); ^ c:\mingw\include\sqlite3.c: In function 'int winDelete(sqlite3_vfs*, const char*, int)': c:\mingw\include\sqlite3.c:40254:45: error: invalid conversion from 'void*' to 'LPCWSTR {aka const wchar_t*}' [-fpermi ive] attr = osGetFileAttributesW(zConverted); ^ c:\mingw\include\sqlite3.c:40270:36: error: invalid conversion from 'void*' to 'LPCWSTR {aka const wchar_t*}' [-fpermi ive] if ( osDeleteFileW(zConverted) ){ ^ c:\mingw\include\sqlite3.c:40283:45: error: invalid conversion from 'void*' to 'LPCSTR {aka const char*}' [-fpermissiv attr = osGetFileAttributesA(zConverted); ^ c:\mingw\include\sqlite3.c:40298:36: error: invalid conversion from 'void*' to 'LPCSTR {aka const char*}' [-fpermissiv if ( osDeleteFileA(zConverted) ){ ^ c:\mingw\include\sqlite3.c: In function 'int winFullPathname(sqlite3_vfs*, const char*, int, char*)': c:\mingw\include\sqlite3.c:40573:55: error: invalid conversion from 'void*' to 'LPWSTR {aka wchar_t*}' [-fpermissive] zTemp = sqlite3MallocZero( nByte*sizeof(zTemp[0]) ); ^ c:\mingw\include\sqlite3.c:40599:55: error: invalid conversion from 'void*' to 'char*' [-fpermissive] zTemp = sqlite3MallocZero( nByte*sizeof(zTemp[0]) ); ^ c:\mingw\include\sqlite3.c: In function 'void (* winDlSym(sqlite3_vfs*, void*, const char*))()': c:\mingw\include\sqlite3.c:40679:44: error: invalid conversion from 'HANDLE {aka void*}' to 'HMODULE {aka HINSTANCE__* [-fpermissive] proc = osGetProcAddressA((HANDLE)pH, zSym); ^ c:\mingw\include\sqlite3.c: In function 'void winDlClose(sqlite3_vfs*, void*)': c:\mingw\include\sqlite3.c:40686:32: error: invalid conversion from 'HANDLE {aka void*}' to 'HMODULE {aka HINSTANCE__* [-fpermissive] osFreeLibrary((HANDLE)pHandle); ^ c:\mingw\include\sqlite3.c: In function 'Bitvec* sqlite3BitvecCreate(u32)': c:\mingw\include\sqlite3.c:41105:37: error: invalid conversion from 'void*' to 'Bitvec*' [-fpermissive] p = sqlite3MallocZero( sizeof(*p) ); ^ In file included from SQLite3-Amalgamation_example.c:5:0: c:\mingw\include\sqlite3.c: In function 'int sqlite3BitvecSet(Bitvec*, u32)': c:\mingw\include\sqlite3.c:41200:21: error: invalid conversion from 'void*' to 'u32* {aka unsigned int*}' [-fpermissiv u32 *aiValues = sqlite3StackAllocRaw(0, sizeof(p->u.aHash)); ^ In file included from SQLite3-Amalgamation_example.c:5:0: c:\mingw\include\sqlite3.c: In function 'void sqlite3BitvecClear(Bitvec*, u32, void*)': c:\mingw\include\sqlite3.c:41243:21: error: invalid conversion from 'void*' to 'u32* {aka unsigned int*}' [-fpermissiv u32 *aiValues = pBuf; ^ c:\mingw\include\sqlite3.c: In function 'int sqlite3BitvecBuiltinTest(int, int*)': c:\mingw\include\sqlite3.c:41334:40: error: invalid conversion from 'void*' to 'unsigned char*' [-fpermissive] pV = sqlite3MallocZero( (sz+7)/8 + 1 ); ^ c:\mingw\include\sqlite3.c: In function 'int pcache1InitBulk(PCache1*)': c:\mingw\include\sqlite3.c:42379:9: error: invalid conversion from 'void*' to 'char*' [-fpermissive] zBulk = pCache->pBulk = sqlite3Malloc( szBulk ); ^ c:\mingw\include\sqlite3.c: In function 'RowSet* sqlite3RowSetInit(sqlite3*, void*, unsigned int)': c:\mingw\include\sqlite3.c:43475:5: error: invalid conversion from 'void*' to 'RowSet*' [-fpermissive] p = pSpace; ^ c:\mingw\include\sqlite3.c: In function 'RowSetEntry* rowSetEntryAlloc(RowSet*)': c:\mingw\include\sqlite3.c:43519:53: error: invalid conversion from 'void*' to 'RowSetChunk*' [-fpermissive] pNew = sqlite3DbMallocRawNN(p->db, sizeof(*pNew)); ^ c:\mingw\include\sqlite3.c: In function 'int pager_delmaster(Pager*, const char*)': c:\mingw\include\sqlite3.c:46467:65: error: invalid conversion from 'void*' to 'char*' [-fpermissive] zMasterJournal = sqlite3Malloc(nMasterJournal + nMasterPtr + 1); ^ c:\mingw\include\sqlite3.c: In function 'int readDbPage(PgHdr*, u32)': c:\mingw\include\sqlite3.c:46908:68: error: invalid conversion from 'void*' to 'u8* {aka unsigned char*}' [-fpermissiv rc = sqlite3WalReadFrame(pPager->pWal, iFrame, pgsz, pPg->pData); ^ c:\mingw\include\sqlite3.c:43946:20: note: initializing argument 4 of 'int sqlite3WalReadFrame(Wal*, u32, int, u8*)' SQLITE_PRIVATE int sqlite3WalReadFrame(Wal *, u32, int, u8 *); Aun asi no puedo: Código
Título: Re: SQLite3 Amalgamation y C: Visor de Archivos y URLs al Azar Publicado por: MAFUS en 15 Abril 2016, 07:26 am Esto es porque lo quieres compilar con C++. C, no se queja tanto por la igualdad en tipos de datos, C++ es muy estricto en eso.
malloc, calloc, realloc devuelven void*. C al ver esto se fija en el tipo de dato del lvalue y si puede hacer la conversión, la hace; en cámbio C++ no hace ese paso y entiende que el programador, al no hacer el cast explícito, se ha equivocado. Código: int *p = malloc (sizeof (int)); Código: int *p = (int*) malloc (sizeof(int)); Título: Re: SQLite3 Amalgamation y C: Visor de Archivos y URLs al Azar Publicado por: HardForo en 15 Abril 2016, 14:57 pm @MAFUS: me sirvió mucho la explicación ;-)
Me la pasaba haciendo castings y supuestamente estaba jugando en C y ahora SI pude compilar sin errores el archivo, muchas gracias, me has salvado otra vez! |