9 Kasım 2016 Çarşamba

warning: deprecated conversion from string constant to 'char*' Uyarısı Çözümü

MinGW derleyicisinde karşılaşabileceğimiz bir uyarı. Örnek olarak şekildeki gibi recursive fonksiyon yazdım ancak derleme sırasında warning: deprecated conversion from string constant to 'char*' bu uyarısı karşımıza çıktı.  MinGW derleyicisinde bu şekilde bir yazım desteklenmiyor eğer visual studio üzerinde derlerseniz böyle bir sorunla karşılaşılmaz. visual studio hakkında tam bir bilgim yok aslında uzun zamandır kullanmıyorum. Güncelleme sırasında 2012 sürümlerinden itibaren bu uyarıyı vs'de almakta muhtemel olabilir. Şimdi hatalı kodu görelim.
void reverse(char *p, int length)
{
    if(length == 0)
        return;
    cout << p[length-1];

    reverse(p,length-1);
}

int main(){
    
    reverse("merhaba",7);

    return 0;

}
Uyarının nedeni parametredeki karakter dizisinin const olarak tanımlanmamasında kaynaklandı. Doğru kullanım aşağıdaki gibidir.
void reverse(const char *p, int length)

Hiç yorum yok:

Yorum Gönder