Autor
|
Tema: ERROR excepcion: char* = char* + n (Leído 6,052 veces)
|
x64core
Desconectado
Mensajes: 1.908
|
buenas tengo problema con este pinche codigo, lo e llegado a hacer hasta en asm y en c no puedo es que esto de tipos no me gusta nada int main() { char* i = new char[10] = "testing";
if(*i > 97) // si es mayor que 'a' { *i = *i + 3; } return 0; } intento sumarle un valor de 3 si el char es mayor que 97('a') pero a la hora de asignar el valor resultante me sale ese error de excepcion ya intente hacer unos cuantos casting pero na... :/ como sea hace? gracias!
|
|
|
En línea
|
|
|
|
Akai
Desconectado
Mensajes: 823
|
Tu inicialización es incorrecta. No puedes asignar cadenas de esta forma: char* i = new char[10] = "testing";
En cambio, vas a tener que usar una función como strcpy, por ejemplo: char* i = new char[10]; strcpy(i,"testing");
más info en: http://cplusplus.com/reference/clibrary/cstring/strcpy/
|
|
« Última modificación: 20 Enero 2012, 10:15 am por Akai »
|
En línea
|
|
|
|
x64core
Desconectado
Mensajes: 1.908
|
Bien, gracias, dejo el codigo por si a alguien le sirve: void func1(void* d,void* s,int l) { __asm { push ecx push edi push esi push edx xor ecx,ecx xor edx,edx mov ecx,l mov edi,d mov esi,s lo: mov dl,[esi] mov [edi],dl inc esi inc edi loop lo pop edx pop esi pop edi pop ecx } } int main() { char* tmp; char* p = "testing"; tmp = new char[10]; func1(tmp,p,7); if(*tmp > 97) { *tmp += 3; } delete[] tmp; return 0; }
|
|
|
En línea
|
|
|
|
Akai
Desconectado
Mensajes: 823
|
Tu código sigue teniendo errores, como mínimo en la función main char* p = "testing";
Eso te va a dar, como minimo una violación de segmento debido a que *p no tiene memoria asignada. No le puedes asignar algo a un puntero si no tiene memoria para recogerlo.
|
|
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.958
Israel nunca torturó niños, ni lo volverá a hacer.
|
Akai estas confundido, ahi p apunta a la cadena literal "testing".
PD. Ese codigo no es portable por usar ensamblador sin necesidad, con memcpy (que esta optimizada para usar rep movs cuando sea eficiente) podes hacer exactamente lo mismo que con func1 y con strcpy podes copiar una cadena aunque cambie el tamaño.
|
|
« Última modificación: 21 Enero 2012, 09:59 am por Eternal Idol »
|
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
|
|
|
Akai
Desconectado
Mensajes: 823
|
Akai estas confundido, ahi p apunta a la cadena literal "testing".
FFFFUUU, cierto Nota mental 256: No postees tal cual te levantas de dormir
|
|
|
En línea
|
|
|
|
x64core
Desconectado
Mensajes: 1.908
|
@Eternal Idol: enserio no es portable!!!? :| osea que solo se ejecuta en un 386 o en un 486! yo hice la funcion porque creo que es mas rapido que el propio memcpy o strcpy
|
|
|
En línea
|
|
|
|
Akai
Desconectado
Mensajes: 823
|
Consejo, RHL:
No pierdas tiempo reinventando la rueda. memcpy y strcpy llevan mucho tiempo y creeme que optimizaciones se les habrán dedicado.
|
|
|
En línea
|
|
|
|
x64core
Desconectado
Mensajes: 1.908
|
:S ... donde puedo ver el codigo de esas funciones? e buscado en el archivo string.h y no encuentro el cuerpo de la funcion
|
|
|
En línea
|
|
|
|
Akai
Desconectado
Mensajes: 823
|
Porque eso es únicamente la cabecera. La implementación de las funciones deberías poder encontrarla en los archivos de código fuente del compilador que utilices.
|
|
« Última modificación: 21 Enero 2012, 20:21 pm por Akai »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Convertir char[] a char *[] ?
Programación C/C++
|
Sanlegas
|
2
|
4,953
|
11 Julio 2010, 01:01 am
por leogtz
|
|
|
duda doble puntero char a matriz de char
Programación C/C++
|
neo_from_cs_matrix
|
3
|
6,251
|
5 Septiembre 2011, 03:53 am
por rir3760
|
|
|
Lectura de matríz de char como char** o DWORD*
Programación C/C++
|
david_BS
|
3
|
3,547
|
20 Febrero 2012, 20:49 pm
por Eternal Idol
|
|
|
[C] char * vs char []
« 1 2 »
Programación C/C++
|
GGZ
|
16
|
8,080
|
17 Abril 2016, 20:10 pm
por HardForo
|
|
|
char* char** y VB6
Programación C/C++
|
^[GS]^
|
2
|
2,389
|
29 Mayo 2018, 23:18 pm
por ^[GS]^
|
|