SORU
6 EKİM 2009, Salı


C string dönüşüm '*' char sürekli kullanımdan kaldırıldı;

private char str[256]; ile bir sınıf var

ve bunun için açık bir kurucu var:

explicit myClass(const char *func)
{
    strcpy(str,func);
}

O kadar diyorum:

myClass obj("example");

Ben bu derleme yaparken aşağıdaki uyarıyı alıyorum:

dizeden itiraz dönüşüm için sürekli 'char*'

Neden böyle oluyor?

CEVAP
7 EKİM 2009, ÇARŞAMBA


Uyarı:

dizeden itiraz dönüşüm için sürekli 'char*'

bir yere gidiyorsun çünkü verilen (ilan kodu değil) gibi bir şey

void foo(char* str);
foo("hello");

Sorun char* bir dize (7 ** tipi ile) dönüştürmek için çalışıyoruz.

Dizi işaretçi bozulur çünkü const char* const char[] bir dönüştürebilirsiniz, ama sen ne yapıyorsun sürekli bir değişken yapıyor.

Bu dönüşüm muhtemelen C uyumluluk için izin verilir, ve sadece uyarı söz verir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Charles Griffin Gibson

    Charles Grif

    26 NİSAN 2006
  • DanceOn

    DanceOn

    6 Mayıs 2006
  • SDSARG3

    SDSARG3

    14 Mart 2009