Öncelikle, burada C kodu:C içinde bir işlev içinde bir dizenin boyutunu nasıl bulunur? Açıklamaya önce
#include <stdio.h>
void printSize(char* str);
int main()
{
char a[100] = "StackOverflow";
printSize(a);
return 0;
}
void printSize(char* str)
{
int n = sizeof(str)/sizeof(char);
printf("%d" ,n);
}
zaten 100 Ben tahsis etmişlerdir boyutu olduğu gibi, ben "100" değerini yazdırmak için benim işlevi almaya çalışıyorum görebileceğiniz gibi char
dizilim a
için. Ancak ben cevabım olarak 8 alıyorum. Şimdi neden 8 tane aldığımı biliyorum, çünkü işaretçinin boyutunu yazdırıyor. Bu yüzden benim soru şu ki, "100" değerini yazdırmak için bu yöntemi kullanamazsam o zaman fonksiyonun içinden a
'a ayrılan belleği nasıl bulabilirim?
Teşekkür
Kolay yöntemlerle bulamıyorsunuz. Genellikle ne yapılır, dizinin boyutunu size söyleyen işlevine "int size", başka bir parametre eklemektir. – atturri
[C'deki Karakter Dizisinin uzunluğunu bulma] (http://stackoverflow.com/q/4180818/995714) –
Temel olarak, C içinde bunu yapmanın bir yolu yok mu? Strlen() 'için – theprogrammer094