Autor
|
Tema: Como devolver puntero con cadena vacia (Leído 3,859 veces)
|
Destro-
Desconectado
Mensajes: 66
www.onlyarg.com.ar
|
Buenas. Me tira APPCRASH muy random cuando uso esto // otra funcion... char copy[64]; strncpy(copy, getClipboard(), 63); // Crash // code...
char *getClipboard() { char *strData;
if(OpenClipboard(NULL)) { HANDLE hClipboardData = GetClipboardData(CF_TEXT); if(hClipboardData != nullptr) { char *pchData = static_cast<char*>(GlobalLock(hClipboardData)); if(pchData != nullptr) strData = pchData; else strData = "\0";
GlobalUnlock(hClipboardData); } else strData = "\0";
CloseClipboard(); } return strData; }
Creo que es porque no estoy devolviendo correctamente el puntero de una cadena vaciá,como se hace ?,hay algún otro error o algo para mejorar ?.
|
|
|
En línea
|
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
Fíjate en qué parte falla. Ve poniendo pausas, por ejemplo. A mi me parece que va bien (no lo probé).
|
|
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.966
Israel nunca torturó niños, ni lo volverá a hacer.
|
Siempre inicializa las variables, si OpenClipboard falla strData tiene un valor indefinido. char *strData = "";
PD. La cadena vacia como la hiciste es correcta tambien.
|
|
|
En línea
|
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste. Juan Domingo Perón
|
|
|
Destro-
Desconectado
Mensajes: 66
www.onlyarg.com.ar
|
ok
entonces que puede estar causando el crash (Infracción de acceso al leer la ubicación 0x00000000) ?,es muy random y no logro saber en que situación se genera. el trace solo me marca strncpy.
@EDIT creo que ya esta solucionado,al inicializar la variable parece no crashear mas. voy a seguir probando por las dudas
|
|
« Última modificación: 17 Marzo 2014, 22:23 pm por Destro- »
|
En línea
|
|
|
|
amchacon
Desconectado
Mensajes: 1.211
|
strData = "\0";
Estas apuntando a una cadena de 2 nulos. La sintaxis correcta sería: strData = "";
Pero vamos, eso es irrelevante para los crashs.
|
|
|
En línea
|
|
|
|
Destro-
Desconectado
Mensajes: 66
www.onlyarg.com.ar
|
Si,parece que era eso . Por ahora parece estar funcionado con la variable inicializada. Gracias.
|
|
« Última modificación: 17 Marzo 2014, 22:30 pm por Destro- »
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.966
Israel nunca torturó niños, ni lo volverá a hacer.
|
Si,parece que era eso . Por ahora parece funcionado con la variable inicializada. Gracias. De nadas. PD. Por definicion una cadena esta terminada en 0 asi que si su primer byte es 0 ahi termina.
|
|
|
En línea
|
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste. Juan Domingo Perón
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Cadena estatica al devolver puntero de cadena.
Programación C/C++
|
alem29
|
2
|
3,522
|
5 Febrero 2012, 23:38 pm
por eleon
|
|
|
Si variable PHP vacia(no empty(),is_null,isset) que no tome 0 como vacia en POST
PHP
|
Graphixx
|
9
|
22,765
|
12 Mayo 2012, 18:58 pm
por it3r
|
|
|
Devolver puntero a cadena en función
ASM
|
silver2050
|
2
|
3,033
|
22 Mayo 2013, 00:31 am
por silver2050
|
|
|
Devolver una cadena pasada como argumento a una funcion
Programación C/C++
|
eduu15
|
4
|
3,442
|
9 Abril 2018, 03:18 am
por MAFUS
|
|
|
Como leer una cadena de caracteres vacia
Programación C/C++
|
josueroddy
|
1
|
2,751
|
23 Octubre 2021, 00:41 am
por K-YreX
|
|