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

  • Jonathan D.

    Jonathan D.

    3 Kasım 2006
  • MarinaHD2001

    MarinaHD2001

    7 ŞUBAT 2009
  • MisterBrightside

    MisterBright

    24 Mart 2006

İLGİLİ SORU / CEVAPLAR