Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - ivancea96

#1491
Puedes escribir en primer lugar el número de caracteres del texto.
#1492
Aclarado está. Como dijo Carlos, un array guarda los datos consecutivos en su memoria, en vez de guardar un puntero.

Como detalle, si inicializas un array con una constante como ahí has escrito, el compilador automáticamente copia los datos. Lo ves fácilmente si compilas el programa a ensamblador (opción -S con GCC).
La salida para:
Código (cpp) [Seleccionar]
int main(){
char array_var[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
}

En mi caso, fue esta (el trozo que afecta al array):
Código (asm) [Seleccionar]
movl $1145258561, 1(%esp)
movl $1212630597, 5(%esp)
movl $1280002633, 9(%esp)
movl $1347374669, 13(%esp)
movl $1414746705, 17(%esp)
movl $1482118741, 21(%esp)
movw $23129, 29(%esp)
movb $0, 31(%esp)


Ya para finalizar, ver que, la primera asignación: "1145258561". En Hexadecimal es 44434241. Separando, se ve lo evidente: 44 43 42 41, son los caracteres DCBA.
Los penúltimos, "23129", "5A59". Y por último, el caracter nulo.

Sin embargo, si declaramos array_var como const char*, obtendremos una salida así:

Código (asm) [Seleccionar]
LC0: .ascii "ABCDEFGHIJKLMNOPQRSTUVWXYZ\0"
movl $LC0, 12(%esp)


Como vemos, solo copia su dirección.
#1493
Bien. En C++, la compilación tiene 2 fases.
En la primera, el código fuente se compila a código objeto (.o generalmente). Cada CPP, se compila a un archivo (generalmente, hay excepciones).
Luego, hay que unir todos esos archivos, donde el linker los entrelaza y genera el exe (en Windows).

Si trabajas con un IDE, estos pasos los hará probablemente solo, así que solo te debes preocupar de tener lso archvios en el proyecto.

Un detalle: para que el main (u otro archivo) pueda acceder a las funciones, clases y variables de otros archivos, estos archivos con funcionalidades han de tener una cabecera (.h o .hpp). La cabecera no se compila.
Un ejemplo:

main.cpp
Código (cpp) [Seleccionar]
#include "archivo.h"

int main(){
    funcion();
}


archivo.h
Código (cpp) [Seleccionar]
#ifndef ARCHIVO_H
#define ARCHIVO_H

void funcion();

#endif ARCHIVO_H


archivo.cpp
Código (cpp) [Seleccionar]
#include "archivo.h"

#include <iostream>

void funcion(){
    std::cout << "Hola" << std::endl;
}


Como detalle adicional, ves las directivas de preprocesado IFDEF,DEFINE,ENDIF del .h. Estas están para que, si tienes varios archivos enlazados entre sí mediante include, no haya problemas, logrando que solo se declare 1 vez lo que el .h contenga.


En caso de que compiles con GCC, te puedo poner un ejemplo de compilación:
g++ -c main.cpp -o main.o
g++ -c archivo.cpp -o archivo.o
g++ main.o archivo.o -o main.exe
#1494
Código (cpp) [Seleccionar]
while (!archivo.eof()) {
Nunca lees de archivo. Así que nunca saldrá del whiile. Tendrás que descomentar las líneas donde lees, colocar otras, o colocar otra condición.
#1495
Generas un número incorrectamente.
Código (java) [Seleccionar]
int num_escondido = min + gen.nextInt(max-min+1);
#1496
¿Y dónde está la función "error()"?
#1497
Las constantes numéricas no se ponen entre comillas:
Código (cpp) [Seleccionar]
persona.renta <= '6000'
->
Código (cpp) [Seleccionar]
persona.renta <= 6000

Dices que no hace su función. Pero decir eso es no decir nada. Qué es lo que hace y qué es lo que no hace. Si preguntas de nuevo, es obvio que no hace su función.
#1498
Esto va en el sub-foro de Programación, C/C++.
Para hacer un hack con C++, lo más evidente, es que necesitas aprender C++, hasta el punto de manejo de memoria de otros procesos, y ya luego, según lo que necesites.
Pero lo primero, es lo primero.
#1499
Scripting / Re: Node o python??
26 Enero 2016, 10:12 AM
Si es tu primer lenguaje, te diría Python. Sino, decir que son lenguajes diferentes. NodeJS está bien orientado a eventos.
Todo será la utilidad que le des.
#1500
Un ejemplo

Código (cpp) [Seleccionar]
int messageCount = 50;
Message *messages = new Message[mssageCount];

for(int i=0; i<messageCount; i++)
    ...

delete[] messages;