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

  • Ash100HD

    Ash100HD

    29 EKİM 2011
  • Chip Johnson

    Chip Johnson

    30 AĞUSTOS 2007
  • happyjpy

    happyjpy

    22 AĞUSTOS 2009

İLGİLİ SORU / CEVAPLAR