C++ Hata Nerede?
-
ello world yazıyor h yi basmıyor hata nerede bir türlü anlayamadım :S
#include <stdio.h> int main() { char* p=new char[12]; *p=0x48; ++p; *p=0x65; ++p; *p=0x6c; ++p; *p=0x6c; ++p; *p=0x6f; ++p; *p=0x20; ++p; *p=0x57; ++p; *p=0x6f; ++p; *p=0x72; ++p; *p=0x6c; ++p; *p=0x64; ++p; *p=0x0; ++p; --p;--p;--p;--p;--p;--p;--p;--p;--p;--p;--p; printf(p); delete p; return 0; }
-
şu --p;--p; li kısma bi --p; daha ekleyip bi denermisin :D
-
Denedim
Sonucu tam hatırlamıyorum ya sonsuz döngü ya da segmentation fault :D -
--p;--p;--p;--p;--p;--p;--p;--p;--p;--p;--p; --p;
buraya bi tane daha ekle ;) pointer arithmetic iyidir hoştur bilinmesi gerekir.
-
uLtRaLoVeR bunu yazdı:
-----------------------------Denedim
Sonucu tam hatırlamıyorum ya sonsuz döngü ya da segmentation fault :D
-----------------------------derleyici olarak visual studio kullanmazsan olur öyle tabi :F
-
Arkadaslarin dedigi gibi tane --p ekle, gcc de sorun yok.
#include <stdio.h>
int main()
{
char* p=new char[12];
*p=0x48; ++p;
*p=0x65; ++p;
*p=0x6c; ++p;
*p=0x6c; ++p;
*p=0x6f; ++p;
*p=0x20; ++p;
*p=0x57; ++p;
*p=0x6f; ++p;
*p=0x72; ++p;
*p=0x6c; ++p;
*p=0x64; ++p;
*p=0x0; ++p;
--p;--p;--p;--p;--p;--p;--p;--p;--p;--p;--p;--p;
printf(p);
delete p;
return 0;
}
-
Usta gereğinden fazla p++ var. Orda zaten hata. son ++p; yi sil.
Sonra
delete [] p;
yaparsan sorunun düzelir.
-
son ++p; yi silince düzeldi gözümden kaçmış sağolun.
-
uLtRaLoVeR bunu yazdı:
-----------------------------son ++p; yi silince düzeldi gözümden kaçmış sağolun.
-----------------------------yada compiler trakyalı :))
-
SinusX bunu yazdı:
-----------------------------uLtRaLoVeR bunu yazdı:
-----------------------------son ++p; yi silince düzeldi gözümden kaçmış sağolun.
-----------------------------yada compiler trakyalı :))
-----------------------------gcc kullanıyorum.
-
konu dışı
0x48
0x65
vs her bir harfi teşkil ediyorum gördüğüm kadarıyla bunlar hakkında elinde döküman olan varsa paylaşırsa sevinirim.