elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Mensajes
Páginas: 1 ... 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 [100] 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 ... 401
991  Programación / Programación C/C++ / Re: Cortar Cadena en: 30 Septiembre 2016, 18:53 pm
lamentablemente no encontre ninguna que haga esto eficientemente

Si estás en C++, la clase string tiene el método substr.
Además, la librería algorithm de la librería estándar también, tiene funciones para manejar contenedores (string incluido).


A parte:

- Pusiste de retorno de la función ini.
- (char *)calloc(inlen, sizeof(char ));: inlen es 0. Quizás quisieras decir this->inlen.
- strncpy( szEnd, &this->szChars[end], inlen);: si lo que querías decir ahí era this->inlen, ten en cuenta que vas a copiar caracteres fuera del rango, y probablemente, de la memoria de tu cadena.
Luego, yo cambiaría calloc y strncpy por malloc y memcpy, poniendo posteriormente el caracter nulo al final de las cadenas. Ya a tu gusto.
Y bueno, estás reservando memoria 4 veces. Puedes hacer esta función reservando memoria solo 1 vez (o ninguna si reutilizas la memoria que ya había, dejando que sobre espacio). Además, coges memoria de un tamaño excesivo.

La cadena tendrá 3 partes:
Código:
--- A ---|beg| --- B --- |end| --- C ---
Deberías reservar solo memoria de tamaño A + C + 1 (caracter nulo). Con eso, te llegará.
992  Programación / Programación C/C++ / Re: [AYUDA] ¿Qué tiene de malo este código? en: 26 Septiembre 2016, 22:07 pm
¿Qué error? Cópialo.
993  Programación / Programación C/C++ / Re: Poniendo a prueba los tipos de variables en c en: 26 Septiembre 2016, 19:30 pm
La razón por la cual están esas variables es porque no está asegurado que esos tamaños sean así siempre.
Lo único asegurado es que los tamaños siguen estas condiciones:
Código
  1. char <= short <= int <= long <= long long
994  Programación / Programación C/C++ / Re: el programa dejó de funconar correctamente por un problema. en: 25 Septiembre 2016, 19:48 pm
Prueba con una ruta relativa (que es lo que deberías hacer la mayoría d elas veces)

En vez de poner "C:/Users/DANIEL/Desktop/Programación/C++/Allegro/Naves/recursos/nave.pcx", (supooniendo que tu ejecutable está en la carpeta Naves, pon: "recursos/nave.pcx". Y a ver.
995  Programación / Programación C/C++ / Re: Llamas a función y pasar como argumento otra llamada a función [C] en: 25 Septiembre 2016, 16:32 pm
Vale. No confundas char con char[] o char*.
char es 1 caracter, que en C es un entero de 8 bits.
char[] y char* son punteros, que apuntan a un (o varios) char.

De ahí el error: return makes integer from pointer without a cast
Es decir, en el retorno, estás convirtiendo un puntero (char[]) a un entero (char) sin un cast explícito, que sería:
Código
  1. return (char)dos;

El segundo error es lo mismo prácticamente. printf espera una cadena (%s, char*), y le estás pasando un entero (char).


Aquí la solución es colocar los tipos correctos:
Código
  1. #include <stdio.h>
  2.  
  3. char* a();
  4. void b( char* dos );
  5.  
  6. int main(void){
  7.  
  8. b(a());
  9.  
  10. return 0;
  11. }
  12.  
  13. char* a() {
  14. char* dos = "dos";
  15. printf("frase uno = %s\n\n", "uno");
  16. return dos;
  17. }
  18.  
  19. void b(char* dos) {
  20. printf("frase dos = %s\n\n", dos);
  21. }

Ahora b coge un parámetro char*. Por tanto, a retorna un parámetro char*.


Edito: Por si acaso, aclarar una cosa: no debes retornar un array de tipo char[]. En vez de eso, deberías utilizar malloc, llenar ese array, y retornarlo.
Una explicación más larga con ejemplos la tienes aquí. Está en inglés, pero los ejuemplos son auto-explicativos: http://stackoverflow.com/questions/31060404/how-can-i-return-a-character-array-from-a-function-in-c
996  Programación / Programación C/C++ / Re: Llamas a función y pasar como argumento otra llamada a función [C] en: 25 Septiembre 2016, 15:51 pm
Ese código es correcto.

Pasar como argumento una "llamada a función", intuyo que te refieres a pasar como argumento el retorno de una función.

Tu código es igual a este:

Código
  1. #include <stdio.h>
  2.  
  3. int a();
  4. void b(int num);
  5.  
  6. int main(void){
  7. int t = a();
  8. b(t);
  9.  
  10. return 0;
  11. }
  12.  
  13. int a() {
  14. printf("num = %d\n\n", 1);
  15. return 2;
  16. }
  17.  
  18. void b(int num) {
  19. printf("num = %d\n\n", num);
  20. }



La otra interpretación, era la que te comentaron por ahí, que es pasar como parámetro una función en sí.
Código
  1. #include <stdio.h>
  2.  
  3. void call(void (*func)());
  4. void a();
  5. void b();
  6.  
  7. int main(void){
  8.  
  9. call(&a);
  10. call(&b);
  11.  
  12. return 0;
  13. }
  14.  
  15. void call(void (*func)()){
  16. func();
  17. }
  18.  
  19. void a() {
  20. printf("num = %d\n\n", 1);
  21. }
  22.  
  23. void b() {
  24. printf("num = %d\n\n", 2);
  25. }

Si dices que un código te da errores, copia también esos errores aquí.
997  Programación / Programación C/C++ / Re: Convertir un archivo a binario en c++ en: 25 Septiembre 2016, 01:05 am
De texto a binario como? Pasar los caracteres a binario?
"abc"
"01100001 01100010 01100011"
O cómo?
998  Programación / Desarrollo Web / Re: javascript: seleccionar valor de una clase dentro de un div en: 24 Septiembre 2016, 17:56 pm
Gracias a ambos. Me gusta más la solución en JS.

ivancea96, vi esa solución por Internet, pero no entendí por qué el
  • . ¿Acaso lo que devuelve es un array?
getElementById retorna 1 elemento, porque se supone que soo habrá 1 elemento con el mismo ID. Pero getElementsByClassName retorna todos los elementos que tengan esa clase dentro del contenedor. En caso de que hubiera varios, ya sería cosa tuya seleccionar cuál. Pero según ese ejemplo, debería retornar un array con 1 valor.
999  Programación / Desarrollo Web / Re: javascript: seleccionar valor de una clase dentro de un div en: 24 Septiembre 2016, 15:26 pm
Código
  1. <html>
  2.    <head>
  3.        <script>
  4.            window.addEventListener("load", function(){
  5.                var div = document.getElementsByClassName("texto")[0];
  6.                var spanPuntos = div.getElementsByClassName("puntos")[0];
  7.                var valor = parseInt(spanPuntos.innerHTML);
  8.                alert(valor);
  9.            })
  10.        </script>
  11.    </head>
  12.  
  13.    <body>
  14.        <div class="col-xs-6 texto">
  15.            <span class="nombre">Petrosian</span>
  16.            <span class="puntos">2730</span>
  17.        </div>
  18.    </body>
  19. </html>

No es JQuery, eso sí.
1000  Programación / Programación C/C++ / Re: CreateThread o CreateProcess en: 21 Septiembre 2016, 17:53 pm
Yo lo haría con threads. De hecho, el de unix también lo haría con threads. Además, así no tendrías que hacer mucho cambio.
Páginas: 1 ... 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 [100] 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 ... 401
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines