Questions sur la langue SI - page 2

 

Merci, j'aime déjà cette langue.

Il faut un peu de temps pour s'y habituer, les conseils sont utiles sur le sujet.

Je ne sais pas si ça compte, mais c'est du c au lieu 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;
}

Et ceci est la même chose, mais en style C.

 

Les exemples, d'ailleurs, seront tous d'icihttps://minepy.readthedocs.io/en/latest/libmine.html.

il est en train d'être porté pour un échauffement.

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:

J'ai alloué de la mémoire à l'intérieur de la fonction et je l'ai libérée dans la portée de la variable à laquelle j'ai passé la référence.

Je n'ai pas vu ton message, apparemment tu écrivais en même temps que moi, j'essayais d'expliquer la même chose.

C'est ainsi que j'ai appris à travailler avec les pointeurs il y a 20 ans, lorsque j'étudiais le C++ :

- déclarer un pointeur - la valeur du pointeur est une adresse de cellule mémoire

- le déréférencement d'un pointeur donne une valeur qui est stockée dans une cellule de mémoire par l'adresse égale au pointeur

- Lors du déréférencement d'un pointeur, le nombre exact d'octets qui décrit le type de pointeur sera avalé (écrit). Si le type de pointeur est simple (int, double...), nous travaillerons avec 4 ou 8 octets - c'est très simple ici. Si nous avons un type complexe - structure, une opération similaire sera effectuée - travail avec des cellules de mémoire.


à peu près, comme on dit "sur les doigts" ))))


SZZ : Les pointeurs vers des objets et des fonctions fonctionnent de manière similaire, mais les appels de fonction (méthode) sont formés en plus, c'est-à-dire qu'au lieu de travailler avec des données, le compilateur appelle la fonction lors du déréférencement du pointeur.

 
Igor Makanu:

Je n'ai pas vu ton message, apparemment tu écrivais en même temps que moi, j'essayais d'expliquer la même chose.

C'est ainsi que j'ai appris à travailler avec les pointeurs il y a 20 ans, lorsque j'étudiais le C++ :

- déclarer un pointeur - la valeur du pointeur est une adresse de cellule mémoire

- le déréférencement d'un pointeur donne une valeur qui est stockée dans une cellule de mémoire par l'adresse égale au pointeur

- Lors du déréférencement d'un pointeur, le nombre exact d'octets qui décrit le type de pointeur sera avalé (écrit). Si le type de pointeur est simple (int, double...), nous travaillerons avec 4 ou 8 octets - c'est très simple ici. Si nous avons un type complexe - structure, une opération similaire sera effectuée - travail avec des cellules de mémoire.


à peu près, comme on dit "sur les doigts" ))))


SZZ : Les pointeurs vers des objets et des fonctions fonctionnent de manière similaire, mais les appels de fonction (méthode) sont formés en plus, c'est-à-dire qu'au lieu de travailler avec des données, le compilateur appellera une fonction lors du déréférencement du pointeur.

Non. La fonction renvoie le pointeur vers la mémoire allouée dans la fonction. Lors du déréférencement du pointeur, il n'y aura pas d'appel de fonction supplémentaire car le pointeur est l'adresse du premier octet de l'entité en mémoire.

Lors de la libération de la mémoire, le gestionnaire de mémoire marquera la mémoire sur la référence comme libre + taille du type et c'est tout.

 
Vladimir Simakov:

Non. La fonction renverra un pointeur vers la mémoire, qui sera allouée dans la fonction. Et lors du déréférencement du pointeur, il n'y aura pas d'appel de fonction supplémentaire car le pointeur est la valeur de l'adresse du premier octet de l'entité en mémoire.

Lors de la libération de la mémoire, le gestionnaire de mémoire marquera la mémoire sur la référence comme libre + taille du type et c'est tout.

J'ai écrit les principes généraux du fonctionnement des pointeurs,

ok, arrêtons ici, sinon le topicstarter va s'enliser dans des discussions sur qui a écrit et ce qu'il a pensé

SZS : Je dis toujours que je ne suis pas très bon pour expliquer, voici un exemple de ce que j'ai écrithttps://metanit.com/sharp/tutorial/8.3.php , la syntaxe de Sharpe fonctionne de la même manière

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

N'est-ce pas plus facile ?

#python

list.sort()

Voir pour sûrhttps://www.youtube.com/watch?v=vHeeXI84GIA

Arrêtez de passer d'un article à l'autre, d'une langue à l'autre, ressaisissez-vous !

 
Кеша Рутов:

N'est-ce pas plus facile ?

#python

list.sort()

Voir pour sûrhttps://www.youtube.com/watch?v=vHeeXI84GIA

Arrêtez de passer d'un article à l'autre, d'une langue à l'autre, ressaisissez-vous !

D'après vous, d'où vient le python lui-même ?

N'oubliez pas de jeter un coup d'œil... et j'ai cherché les liens plus loin, j'ai trouvé - "À L'ÉCOLE PLUS DE 10 JOURS DE LEÇONS VIDÉO"... ri.... a évolué))

 
Dmitry Fedoseev:

D'après vous, d'où vient le python lui-même ?

J'ai vérifié... et j'ai cherché les liens plus loin, j'ai trouvé - "À L'ÉCOLE PLUS DE 10 JOURS DE LEÇONS VIDÉO"... ri.... a évolué))

Eh bien, écrivez en C ou, mieux, en Asembler, des systèmes de trading et d'apprentissage automatique. Nous en reparlerons dans 100 ans, dans la prochaine vie, quand vous écrirez le premier prototype...


Je ne suis pas contre le C et l'ASM, la question est : dans quel but ? Firewares, OS, contrôleurs, nouveaux noyaux, etc... Pas question, mais le logiciel d'application C est difficile, il n'y a pas de fils C, tout est différent pour les différents OS, ce n'est pas un forum pour écrire des firewares et des virus, pour TC et MO le standard mondial est python, à la rigueur java/sysharp. Et Maxime est un internaute bien connu, qui ne fait que surfer à la recherche de ce qui est "intéressant", comme un enfant d'âge préscolaire, ici et là, en lisant des résumés, en ramassant des mots intelligents pour paraître scientifique et en en cherchant d'autres, une telle activité ne se termine pas bien, pour un homme adulte, on ne peut que se leurrer. S'il était à court de sources de revenus et devait faire face à la LIFE, il ne serait même pas embauché gratuitement dans un bureau provincial et devrait se tourner vers le secteur des services où la concurrence est féroce, mais il a au moins dégrisé.

 
Кеша Рутов:

Eh bien, écrivez en C, ou de préférence en Asembler, systèmes de trading et apprentissage automatique, on en reparlera dans 100 ans, dans la prochaine vie, quand vous écrirez votre premier prototype....


Je ne suis pas contre le C et l'ASM, la question est : dans quel but ? Firewares, OS, contrôleurs, nouveaux noyaux, etc... Pas question, mais le logiciel d'application C est difficile, il n'y a pas de fils C, tout est différent pour les différents OS, ce n'est pas un forum pour écrire des firewares et des virus, pour TC et MO le standard mondial est python, à la rigueur java/sysharp. Et Maxime est un internaute bien connu, qui ne fait que surfer à la recherche de ce qui est "intéressant", comme un enfant d'âge préscolaire, ici et là, en lisant des résumés, en ramassant des mots intelligents pour paraître scientifique et en en cherchant d'autres, une telle activité ne se termine pas bien, pour un homme adulte, on ne peut que se leurrer. S'il était à court de sources de revenus et devait faire face à la LIFE, il ne serait même pas embauché gratuitement dans un bureau provincial et devrait se tourner vers le secteur des services où la concurrence est féroce, mais il a au moins dégrisé.

Et qu'est-ce que vous n'aimez pas dans le C++ depuis la 11e norme ? Je suis d'accord pour le C, mais les plus modernes semblent très bien. C'est juste que le C/C++ est plus proche du matériel et qu'il faut le garder à l'esprit et ne pas se contenter d'écrire dans ce style : "Hé, matériel, donne-moi ceci, donne-moi cela". En fin de compte, toutes ces fonctionnalités, sous une forme ou une autre, sont déjà disponibles dans la STL, ou peuvent être implémentées sans problème, mais le travail direct avec la mémoire dans tous ces frameworks n'est certainement pas possible.

Raison: