Hatalar, hatalar, sorular - sayfa 3019

 
Andrei Trukhanovich :

count=0 gibi görünüyor, count=-1 ile aynı şekilde çalışıyor ve "" olması durumunda boş terminali kopyalıyor.

Bu hatadır, genel durumda pratik bir örnekte basitçe gösterilmiştir.   hem boş dizeler hem de kendi başına sayı = 0 olabilir (örneğin bir döngüde)

 
A100 :

Ve kaç tane

count = 0 olduğunda karakterleri kopyalamalı mısınız?

İpucu: say = 3 kopya 3 karakter

Tartışmayacağım bile. Doğru çalışır.

Andrey Trukhanoviç :

Görünüşe göre count=0, count=-1 ile aynı şekilde çalışıyor ve "" olması durumunda, terminal sıfırını kopyalıyorsa, ek kontroller olmadan boş dizenin normal olarak dönüştürülmeyeceği ortaya çıkıyor

Boş bir dize (NULL), bir terminal sıfır içermez. Benim düşünceme göre, oradaki her şey mantıklı bir şekilde çalışıyor.

 
fxsaber :

Tartışmayacağım bile. Doğru çalışır.

Argüman yoksa, elbette gerekli değildir.

fxsaber :

Boş bir dize (NULL), bir terminal sıfır içermez. Benim düşünceme göre, oradaki her şey mantıklı bir şekilde çalışıyor.

Boş bir dize "" dir ve NULL boş bir dize değildir - bu başlatılmamış bir dizedir, yani. bu bir dize değil ve NULL ile StringToCharArray çalışmıyor, hata sonucu: 4009

 
A100 :

Argüman yoksa, elbette gerekli değildir.

Boş bir dize "" dir ve NULL boş bir dize değildir - bu başlatılmamış bir dizedir, yani. bu bir dize değil ve NULL ile StringToCharArray çalışmıyor, hata sonucu: 4009

Hafifçe söylemek gerekirse yanılıyorsunuz.

 
fxsaber :

Hafifçe söylemek gerekirse yanılıyorsunuz.

Konunun esası hakkında söyleyeceğiniz bir şey varsa lütfen açıklayınız.

 
A100 :

Konunun esası hakkında söyleyeceğiniz bir şey varsa lütfen açıklayınız.

 string Str = NULL ;

Print (Str == "" );
 
fxsaber :

sonuç: yanlış

Ve bu ifadenin çelişkisi nedir?

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

Hatalar, hatalar, sorular

A100 , 2021.05.24 20:07

Boş bir dize "" dir ve NULL boş bir dize değildir - bu başlatılmamış bir dizedir , yani. bu bir dize değil ve NULL ile StringToCharArray çalışmıyor, hata sonucu: 4009


 
A100 :

sonuç: yanlış

Ve bu ifadenin çelişkisi nedir?

Değişken başlatılır. Elbette string'i string'in iç sınıfının bir göstergesi olarak düşünebilirsiniz.

 
fxsaber :

Değişken başlatılır. Elbette string'i string'in iç sınıfının bir göstergesi olarak düşünebilirsiniz.

Başlatılırsa, neden o zaman yürütülürken

 void OnStart ()
{
     uchar array[];
     const string text = NULL ;
     StringToCharArray ( text, array );
     Print ( GetLastError ());
}

4009 hatası oluşuyor

ERR_NOTINITIALIZED_STRING

4009

başlatılmamış dize

 
fxsaber :

Tartışmayacağım bile. Doğru çalışır.

Boş bir dize (NULL), bir terminal sıfır içermez. Benim düşünceme göre, oradaki her şey mantıklı bir şekilde çalışıyor.


Sorun burada değil, bu kodun 4 döndürmesi, ancak 0 döndürmesi gerektiği gerçeğinde.

 Print ( StringToCharArray ( "ABC" , array, 0 , 0 ));