Dans mon application, j'ai créé la liste de types TList dans laquelle je stocke les pointeurs sur 1 chaîne et 2 valeurs flottantes (réelles) pour 3 articles. Alors, je veux obtenir les valeurs hors de la liste, mais je ne pouvais le faire pour la chaîneComment obtenir une valeur flottante pointée par le pointeur?
sStr := string(lList.items[i]);
Mais je ne pouvais pas obtenir les valeurs flottantes comme a := real(lList...)
se traduira par
aList.Add(@sName); //string
aList.Add(@x1); //float
aList.Add(@x2); //float
une erreur de typage invalide.
Alors, que dois-je faire pour obtenir les valeurs flottantes?
Bien sûr, j'ai une question si la conversion de chaîne me donnera la valeur de chaîne. Je ne suis pas bon en matière de pointeur, donc je ne sais pas comment le faire.
Il manque certaines données, mais ce type d'affectation peut entraîner une violation d'accès. Lorsque vous lancez une chaîne sur un pointeur, cela n'augmente pas le nombre de références. Ainsi, lorsque sName sort de la portée, votre pointeur peut devenir invalide. Il en va de même pour vos valeurs flottantes. Lorsque les variables X1 et X2 sont hors de portée, les pointeurs ne sont plus valides. En ce qui concerne le transtypage invalide, vous pouvez faire un typecast comme ceci, vous avez probablement juste oublié de déréférencer le pointeur. Double (lListe [I] ^) –