[Duda] sizeof utilizando "char". -
Swedky - 30.04.2016
Hola gente.
Tengo este cуdigo:
pawn Код:
static MyVar[20 char] = {1, ...};
// OnGameModeInit
printf("size %i", sizeof(MyVar));
Mi duda es, porquй sale "size 4"?
Pero al cambiar a йsto:
pawn Код:
static MyVar[19 + 1 char] = {1, ...};
Ahн sн sale "size 20", es algъn tipo de bug en el compilador?
Y otra cosa, porquй cada 4 нndices el valor es 1, y en los demбs es 0? (ya que todos los нndices deberнan retornar 1)
Respuesta: [Duda] sizeof utilizando "char". -
aoEXE - 30.04.2016
En el primero deberнa salirte 'size 5' pero, supongo que te da 20 en el segundo porque no te da el valor char de (19+1) si no de (1) que es 1.
es decir si haces:
Код:
static MyVar[20 + 20 char] = {1, ...};
el printf te deberнa retornar 25...
porque es como que hicieras:
Код:
static MyVar[20 + 5] = {1, ...};
Lo otro no tengo idea jajaj aunque creo que es porque al inicializar {1, 1, 1} se establece el valor en la posiciуn de la celda, como si hiciera:
Код:
static MyVar[10] = {1, ...};
cada celda serнa '0001'
y no en la posiciуn de cada byte que serнa '1111'.
Respuesta: [Duda] sizeof utilizando "char". -
Swedky - 30.04.2016
No entendi ni un pedo lo primero jajaja, pero segun leн es un bug del compilador.
Igual ya entiendo lo segundo
+6
EDIT: no se de donde salio ese tag offtopic jajaja
Respuesta: [Duda] sizeof utilizando "char". -
aoEXE - 30.04.2016
xD yo no lo veo como bug la verdad.
char solo te retorna el nъmero de celdas necesarias dependiendo el nъmero sin hacer la operaciуn
Код:
new var[20 + 20 char]; //serнa como hacer 20 + 5 = 25 celdas
(lo que estб en rojo)
pero ahora si haces:
Код:
new var[(20 + 20) char]; // que serнa 40 char = 10 celdas
si te da el nъmero de celdas necesarias del resultado de la operaciуn.
que es lo mismo que hacer
Код:
new var[20 char + 20 char]; // que serнa 5 + 5 = 10 celdas
EDIT: si te iba a preguntar por quй el off :V
Respuesta: [Duda] sizeof utilizando "char". -
Swedky - 30.04.2016
Ah ya entendн.
O sea que, 20 char es lo mismo que 20/4 (4 que es la cantidad de bytes por celda)
Respuesta: [Duda] sizeof utilizando "char". -
aoEXE - 30.04.2016
simplificado si.
Pero toma en cuenta que si haces:
20/4 = 5. Entonces 20 char retorna 5
21/4 = 5.25. Entonces 21 char retorna 6
22/4 = 5.5. Entonces 22 char retorna 6
23/4 = 5.75. Entonces 23 char retorna 6
24/4 = 6. Entonces 24 char retorna 6
25/4 = 6.25. Entonces 25 char retorna 7
y asн sucesivamente
Respuesta: [Duda] sizeof utilizando "char". -
OTACON - 01.05.2016
Quote:
Originally Posted by EnzoMetlc
No entendi ni un pedo lo primero jajaja, pero segun leн es un bug del compilador.
Igual ya entiendo lo segundo +6
EDIT: no se de donde salio ese tag offtopic jajaja
|
Respuesta: [Duda] sizeof utilizando "char". -
Juance - 02.05.2016
Lo que voy a preguntar no tiene nada que ver con lo que preguntу Enzo, pero ya que estб el tema, pregunto jajaja.
їEs de mucha ayuda declarar las variables con char? por ejemplo: new var[MAX_PLAYERS char];
їTendrб algъn tipo de efecto en la memoria del sistema si declaro todas las variables del jugador con char?
Respuesta: [Duda] sizeof utilizando "char". -
Swedky - 02.05.2016
Por lo que sй "char" utiliza menos memoria, pero acepta valores que estбn en la.tabla ASCII, o sea del 0-255
Respuesta: [Duda] sizeof utilizando "char". -
Parka - 02.05.2016
Quote:
Originally Posted by EnzoMetlc
Por lo que sй "char" utiliza menos memoria, pero acepta valores que estбn en la.tabla ASCII, o sea del 0-255
|
Pawn, lenguaje de 5ta, usando o no char sera la misma mierda, es un asco.