Preguntas sobre la lengua SI - página 2

 

Gracias, ya me encanta esta lengua.

Se necesita un poco de tiempo para cogerle el tranquillo, los consejos son útiles sobre el tema

No sé si importa, pero es c en lugar de c++.
 
#include "pch.h"
#include <iostream>
#include <cstdlib>

using namespace std;

int* Foo(int i)
{
        int* x = (int*)malloc (sizeof(int));
        *x = i;
        return x;
}

int main()
{
        int* x = Foo(5);
        cout << *x;
        free (x);
        return 0;
}

Y esto es lo mismo, pero en estilo C.

 

Los ejemplos, por cierto, serán todos de aquíhttps://minepy.readthedocs.io/en/latest/libmine.html

se está portando para un calentamiento

C API — minepy 1.2.4.dev documentation
  • minepy.readthedocs.io
This chapter describes the mine C library. These functions and structures are declared in the header file , located in the folder. You need to add in your C source files and link your program with . Defines¶ EST_MIC_APPROX ¶ Original estimator described in DOI: 10.1126/science.1205438. EST_MIC_E ¶ Estimator described in DOI: arXiv:1505.02213...
 
Vladimir Simakov:

Asigné memoria dentro de la función y la liberé en el ámbito de la variable a la que pasé la referencia.

No vi tu post, al parecer estabas escribiendo al mismo tiempo que yo, estaba tratando de explicar lo mismo

Así es como aprendí a trabajar con punteros hace 20 años cuando estudiaba C++:

- declarar un puntero - el valor del puntero es una dirección de celda de memoria

- al desreferenciar un puntero se obtiene un valor que se almacena en una celda de memoria por la dirección igual al puntero

- Al desreferenciar un puntero, se tragará (escribirá) exactamente el número de bytes que describa el tipo de puntero. Si el tipo de puntero es simple (int, double...), se trabajará con 4 u 8 bytes - aquí es muy sencillo. Si tenemos un tipo complejo - estructura, se realizará una operación similar - se trabajará con celdas de memoria.


aproximadamente, como se dice "en los dedos" ))))


SZZ: Los punteros a objetos y funciones funcionan de forma similar, pero las llamadas a funciones (métodos) se forman de forma adicional, es decir, en lugar de trabajar con datos, el compilador llamará a la función al desreferenciar el puntero

 
Igor Makanu:

No vi tu post, al parecer estabas escribiendo al mismo tiempo que yo, estaba tratando de explicar lo mismo

Así es como aprendí a trabajar con punteros hace 20 años cuando estudiaba C++:

- declarar un puntero - el valor del puntero es una dirección de celda de memoria

- al desreferenciar un puntero se obtiene un valor que se almacena en una celda de memoria por la dirección igual al puntero

- Al desreferenciar un puntero, se tragará (escribirá) exactamente el número de bytes que describa el tipo de puntero. Si el tipo de puntero es simple (int, double...), se trabajará con 4 u 8 bytes - aquí es muy sencillo. Si tenemos un tipo complejo - estructura, se realizará una operación similar - se trabajará con celdas de memoria.


aproximadamente, como se dice "en los dedos" ))))


SZZ: Los punteros a objetos y a funciones funcionan de forma similar, pero las llamadas a funciones (métodos) se forman adicionalmente, es decir, en lugar de trabajar con datos, el compilador llamará a una función al desreferenciar el puntero.

No. La función devolverá el puntero a la memoria asignada dentro de la función. Cuando se desreferencie el puntero, no habrá ninguna llamada de función adicional porque el puntero es la dirección del primer byte de la entidad en memoria.

Al liberar memoria, el gestor de memoria marcará la memoria de la referencia como libre + el tamaño del tipo y ya está.

 
Vladimir Simakov:

No. La función devolverá un puntero a la memoria, que se asignará dentro de la función. Y cuando se dereferencie el puntero, no habrá ninguna llamada de función adicional porque el puntero es el valor de la dirección del primer byte de la entidad en memoria.

Al liberar memoria, el gestor de memoria marcará la memoria de la referencia como libre + el tamaño del tipo y ya está.

Escribí los principios generales de cómo funcionan los punteros,

Ok, paremos aquí, de lo contrario el topicstarter se empantanará en discusiones sobre quién escribió y qué pensó

SZS: Siempre digo que no soy muy bueno explicando, aquí hay un ejemplo de lo que escribíhttps://metanit.com/sharp/tutorial/8.3.php , la sintaxis de Sharpe funciona igual

Указатели | C#
  • metanit.com
Если вы программировали на С/С++, то, возможно, вы знакомы с таким понятием как . Указатели позволяют получить доступ к определенной ячейке памяти и произвести определенные манипуляции со значением, хранящимся в этой ячейке. В языке C# указатели очень редко используются, однако в некоторых случаях можно прибегать к ним для оптимизации...
 
Maxim Dmitrievsky:
void quicksort(double *a, int *idx, int l, int u)
{
  int i, m, idx_temp;
  double a_temp;

  if (l >= u)
    return;

  m = l;
  for (i=l+1; i<=u; i++)
    {
      if (a[i] < a[l])
        {
          ++m;

          idx_temp = idx[m];
          idx[m] = idx[i];
          idx[i] = idx_temp;

          a_temp = a[m];
          a[m] = a[i];
          a[i] = a_temp;
        }
    }

  idx_temp = idx[l];
  idx[l] = idx[m];
  idx[m] = idx_temp;

  a_temp = a[l];
  a[l] = a[m];
  a[m] = a_temp;

  quicksort(a, idx, l, m-1);
  quicksort(a, idx, m+1, u);
}

¿No es más fácil?

#python

list.sort()

Vea con seguridadhttps://www.youtube.com/watch?v=vHeeXI84GIA

Deja de revolotear de un artículo a otro, de un idioma a otro, y ponte las pilas.

 
Кеша Рутов:

¿No es más fácil?

#python

list.sort()

Vea con seguridadhttps://www.youtube.com/watch?v=vHeeXI84GIA

Deja de revolotear de un artículo a otro, de un idioma a otro, y ponte las pilas.

¿De dónde crees que salió la pitón?

Asegúrese de echar un vistazo... e investigó más los enlaces, encontró - "EN LA ESCUELA MÁS DE 10 DÍAS DE CLASES DE VIDEO"... se rió... se ha movido))

 
Dmitry Fedoseev:

¿De dónde crees que salió la pitón?

Definitivamente lo busqué... e investigó más los enlaces, encontró - "EN LA ESCUELA MÁS DE 10 DÍAS DE CLASES DE VIDEO"... se rió... se ha movido))

Bueno, escribe en C o, mejor, en Asembler, sistemas de comercio y aprendizaje automático. Hablaremos dentro de 100 años, en la próxima vida, cuando escribas el primer prototipo...


No estoy en contra de C y ASM, la pregunta es ¿para qué? Firewares, OS, controladores, nuevos kernels, etc... Ni hablar, pero el software de aplicación en C es difícil, no hay hilos de C, todo es diferente para diferentes OS, este no es un foro para escribir firewares y virus, para TC y MO el estándar mundial es python, en un apuro java/sysharp. Y Maxim es un conocido internauta, sólo navega en busca de lo "interesante", como un preescolar, aquí y allá, leyendo resúmenes, recogiendo palabras inteligentes para parecer científico y buscando más, tal actividad no termina bien, para un hombre adulto, sólo puede engañarse a sí mismo. Si se le acabaran las fuentes de ingresos y tuviera que enfrentarse a la VIDA, ni siquiera le contratarían en una oficina provincial de forma gratuita y tendría que ir al sector de los servicios, donde hay una competencia feroz, pero al menos se le ha pasado la borrachera.

 
Кеша Рутов:

Bueno, escribe en C, o preferiblemente en Asembler, sistemas de comercio y aprendizaje automático, ya hablaremos dentro de 100 años, en la próxima vida, cuando escribas tu primer prototipo...


No estoy en contra de C y ASM, la pregunta es ¿para qué? Firewares, OS, controladores, nuevos kernels, etc... Ni hablar, pero el software de aplicación en C es difícil, no hay hilos de C, todo es diferente para diferentes OS, este no es un foro para escribir firewares y virus, para TC y ME el estándar mundial es python, en un apuro java/sysharp. Y Maxim es un conocido internauta, sólo navega en busca de lo "interesante", como un preescolar, aquí y allá, leyendo resúmenes, recogiendo palabras inteligentes para parecer científico y buscando más, tal actividad no termina bien, para un hombre adulto, sólo puede engañarse a sí mismo. Si se le acabaran las fuentes de ingresos y tuviera que enfrentarse a la VIDA, ni siquiera le contratarían en una oficina provincial de forma gratuita y tendría que ir al sector de los servicios, donde hay una competencia feroz, pero al menos se le ha pasado la borrachera.

¿Y qué es lo que no te gusta de C++ desde la 11ª norma? Estoy de acuerdo con lo de C, pero los pluses modernos tienen muy buena pinta. Es que C/C++ está más cerca del hardware y hay que tenerlo en cuenta y no limitarse a escribir en este estilo: "Oye, hardware, dame esto, dame aquello". Al final, toda esta funcionalidad, de una u otra forma, ya está disponible en la STL, o puede implementarse sin problemas, pero el trabajo directo con la memoria en todos estos frameworks no es ciertamente posible.