Perguntas sobre a linguagem SI - página 2

 

Obrigado, eu já amo esta linguagem.

Leva um pouco de tempo para se apanhar o jeito, as dicas são úteis sobre o assunto

Não sei se isso importa, mas é c ao invés 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;
}

E isto é o mesmo, mas no estilo C.

 

Exemplos, a propósito, serão todos a partir daquihttps://minepy.readthedocs.io/en/latest/libmine.html

está sendo portado para um aquecimento

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:

Alocar memória dentro da função e liberá-la no escopo da variável para a qual passei a referência.

Eu não vi seu posto, aparentemente você estava escrevendo ao mesmo tempo que eu, eu estava tentando explicar a mesma coisa

Foi assim que aprendi a trabalhar com ponteiros há 20 anos quando estava estudando C++:

- declarar um ponteiro - o valor do ponteiro é um endereço de célula de memória

- o desreferenciamento de um ponteiro dá um valor que é armazenado em uma célula de memória pelo endereço igual ao do ponteiro

- Se o tipo de ponteiro for simples (int, duplo...), trabalharemos com 4 ou 8 bytes - é muito simples aqui. Se tivermos um tipo complexo - estrutura, uma operação semelhante será realizada - trabalho com células de memória.


aproximadamente assim, como se diz "nos dedos" ))))


SZZ: Ponteiros para objetos e funções funcionam de forma semelhante, mas chamadas de função (método) são formadas adicionalmente, ou seja, ao invés de trabalhar com dados, o compilador chamará uma função ao desreferenciar o ponteiro

 
Igor Makanu:

Eu não vi seu posto, aparentemente você estava escrevendo ao mesmo tempo que eu, eu estava tentando explicar a mesma coisa

Foi assim que aprendi a trabalhar com ponteiros há 20 anos quando estava estudando C++:

- declarar um ponteiro - o valor do ponteiro é um endereço de célula de memória

- o desreferenciamento de um ponteiro dá um valor que é armazenado em uma célula de memória pelo endereço igual ao do ponteiro

- Se o tipo de ponteiro for simples (int, duplo...), trabalharemos com 4 ou 8 bytes - é muito simples aqui. Se tivermos um tipo complexo - estrutura, uma operação semelhante será realizada - trabalho com células de memória.


aproximadamente assim, como se diz "nos dedos" ))))


SZZ: Ponteiros para objetos e funções operam de forma semelhante, mas chamadas de função (método) são formadas adicionalmente, ou seja, ao invés de trabalhar com dados, o compilador chamará uma função ao desreferenciar o ponteiro.

Não. A função retornará o ponteiro para a memória alocada dentro da função. Ao desreferenciar o ponteiro, não haverá chamada de função adicional porque o ponteiro é o endereço do primeiro byte da entidade na memória.

Ao liberar a memória, o gerenciador de memória marcará a memória na referência como livre + tipo de tamanho e pronto.

 
Vladimir Simakov:

Não. A função devolverá um ponteiro à memória, que será alocado dentro da função. E ao desreferenciar o ponteiro, não haverá chamada de função adicional porque o ponteiro é o valor do endereço do primeiro byte da entidade na memória.

Ao liberar a memória, o gerenciador de memória marcará a memória na referência como livre + tipo de tamanho e pronto.

Eu escrevi os princípios gerais de como funcionam as indicações,

ok, vamos parar aqui, caso contrário o iniciador do tópico ficará atolado em discussões sobre quem escreveu e o que ele pensou

SZS: Eu sempre digo que não sou muito bom em explicar, aqui está um exemplo do que escrevihttps://metanit.com/sharp/tutorial/8.3.php , a sintaxe Sharpe funciona da mesma maneira

Указатели | 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);
}

Isso não é mais fácil?

#python

list.sort()

Veja com certezahttps://www.youtube.com/watch?v=vHeeXI84GIA

Pare de folhear de artigo para artigo de idioma para idioma, controle-se

 
Кеша Рутов:

Isso não é mais fácil?

#python

list.sort()

Veja com certezahttps://www.youtube.com/watch?v=vHeeXI84GIA

Pare de folhear de artigo para artigo de idioma para idioma, controle-se

De onde você acha que veio a própria pitão?

Não deixe de dar uma olhada... e pesquisou ainda mais os links, encontrou - "EM ESCOLA MAIS DE 10 DIAS DE LICENÇAS DE VÍDEO"... riu... seguir em frente))

 
Dmitry Fedoseev:

De onde você acha que veio a própria pitão?

Definitivamente pesquisei... e pesquisou ainda mais os links, encontrou - "EM ESCOLA MAIS DE 10 DIAS DE LICENÇAS DE VÍDEO"... riu... seguir em frente))

Bem, escreva em C ou, melhor, em Asembler, sistemas comerciais e aprendizagem de máquinas. Falaremos daqui a 100 anos, na próxima vida, quando você escreverá o primeiro protótipo...


Não sou contra a C e a ASM, a questão é: para que propósito? Firewares, OS, controladores, novos kernels, etc... De jeito nenhum, mas o software de aplicação C é difícil, não há tópicos C, tudo é diferente para diferentes OS, este não é um fórum para escrever firewares e vírus, para TC e MO o padrão mundial é python, em uma pitada java/sysharp. E Maxim é um conhecido surfista da Internet, apenas navegando em busca de "interessante", como um pré-escolar, aqui e ali, lendo resumos, pegando palavras inteligentes para parecer científico e procurando por mais, tal atividade não termina bem, para um homem adulto, você só pode enganar-se a si mesmo. Se ele ficasse sem fontes de renda e tivesse que enfrentar a LIFE, ele nem mesmo seria contratado em um escritório provincial de graça e teria que ir para o setor de serviços onde há uma concorrência feroz, mas ele pelo menos ficava sóbrio.

 
Кеша Рутов:

Bem, escreva em C, ou de preferência em Asembler, sistemas comerciais e aprendizagem de máquinas, falaremos daqui a 100 anos, na próxima vida, quando você escrever seu primeiro protótipo...


Não sou contra a C e a ASM, a questão é: para que propósito? Firewares, OS, controladores, novos kernels, etc... De jeito nenhum, mas o software de aplicação C é difícil, não há tópicos C, tudo é diferente para diferentes OS, este não é um fórum para escrever firewares e vírus, para TC e MO o padrão mundial é python, em uma pitada java/sysharp. E Maxim é um conhecido surfista da Internet, apenas navegando em busca de "interessante", como um pré-escolar, aqui e ali, lendo resumos, pegando palavras inteligentes para parecer científico e procurando por mais, tal atividade não termina bem, para um homem adulto, você só pode enganar-se a si mesmo. Se ele ficasse sem fontes de renda e tivesse que enfrentar a LIFE, ele nem mesmo seria contratado em um escritório provincial de graça e teria que ir para o setor de serviços onde há uma concorrência feroz, mas ele pelo menos ficava sóbrio.

E o que você não gosta em C++ desde o 11º padrão? Eu concordo com o C, mas as modernas vantagens parecem muito boas. É que o C/C++ está mais próximo do hardware e deve-se ter isto em mente e não apenas escrever neste estilo: "Ei, hardware, dê-me isto, dê-me aquilo". No final, toda essa funcionalidade de uma forma ou de outra já está disponível no STL, ou pode ser implementada sem problemas, mas o trabalho direto com a memória em todas essas estruturas não é certamente possível.

Razão: