Size: a a a

Unity Floodилка

2020 October 27

n

neFormal in Unity Floodилка
странная хрень. тут даже на write не сослаться
источник

G

Graf in Unity Floodилка
using System;
public class C {
   public static void Main() {
       int tmp = 0;
       Console.WriteLine(++tmp);
       
       Console.WriteLine(tmp);
       
       Console.WriteLine(tmp++);
       
       Console.WriteLine(tmp);
   }
}

1
1
1
2


C.Main()
   L0000: push ebp
   L0001: mov ebp, esp
   L0003: sub esp, 0xc
   L0006: xor eax, eax
   L0008: mov [ebp-4], eax
   L000b: cmp dword ptr [0x15e0c1a8], 0
   L0012: je short L0019
   L0014: call 0x72780140
   L0019: nop
   L001a: xor ecx, ecx
   L001c: mov [ebp-4], ecx
   L001f: mov ecx, [ebp-4]
   L0022: inc ecx
   L0023: mov [ebp-8], ecx
   L0026: mov ecx, [ebp-4]
   L0029: inc ecx
   L002a: mov [ebp-4], ecx
   L002d: mov ecx, [ebp-8]
   L0030: call System.Console.WriteLine(Int32)
   L0035: nop
   L0036: mov ecx, [ebp-4]
   L0039: call System.Console.WriteLine(Int32)
   L003e: nop
   L003f: mov ecx, [ebp-4]
   L0042: mov [ebp-0xc], ecx
   L0045: mov ecx, [ebp-4]
   L0048: inc ecx
   L0049: mov [ebp-4], ecx
   L004c: mov ecx, [ebp-0xc]
   L004f: call System.Console.WriteLine(Int32)
   L0054: nop
   L0055: mov ecx, [ebp-4]
   L0058: call System.Console.WriteLine(Int32)
   L005d: nop
   L005e: nop
   L005f: mov esp, ebp
   L0061: pop ebp
   L0062: ret
источник

G

Graf in Unity Floodилка
и получается походу те же яйца, просто в ++i дополнительный инкремент
источник

n

neFormal in Unity Floodилка
а ты понел, зачем оно там?
источник

G

Graf in Unity Floodилка
при выводе например чтоб сразу плюсануло, а не после вывода
источник

n

neFormal in Unity Floodилка
но смысл?
источник

G

Graf in Unity Floodилка
доступ к ячейке массива еще например array[i++] array[++i]
источник

G

Graf in Unity Floodилка
e nt,z vj;tn negj gthtgjlytybt ,snm ghb ytghfdbkmyjq kjubrt b eckjdbb
источник

G

Graf in Unity Floodилка
да
источник

G

Graf in Unity Floodилка
у тебя тупо переполнение может быть при неправильном инкременте и условии
источник

G

Graf in Unity Floodилка
выход за границу)
источник

n

neFormal in Unity Floodилка
только двойной инкремент с этим не связан имхо
источник

n

neFormal in Unity Floodилка
похоже, это с вызовом как-то связано
источник

G

Graf in Unity Floodилка
ну если у тебя сработает сразу array[++i] а потом только проверка на допустимое значение
источник

n

neFormal in Unity Floodилка
using System;
public class C {
   public static void Main() {
       int tmp = 0;

       ++tmp;
       Console.WriteLine(tmp);
       tmp++;
       Console.WriteLine(tmp);
   }
}

C.Main()
   L0000: push ebp
   L0001: mov ebp, esp
   L0003: push eax
   L0004: xor eax, eax
   L0006: mov [ebp-4], eax
   L0009: cmp dword ptr [0x1641c1a8], 0
   L0010: je short L0017
   L0012: call 0x72780140
   L0017: nop
   L0018: xor ecx, ecx
   L001a: mov [ebp-4], ecx
   L001d: mov ecx, [ebp-4]
   L0020: inc ecx
   L0021: mov [ebp-4], ecx
   L0024: mov ecx, [ebp-4]
   L0027: call System.Console.WriteLine(Int32)
   L002c: nop
   L002d: mov ecx, [ebp-4]
   L0030: inc ecx
   L0031: mov [ebp-4], ecx
   L0034: mov ecx, [ebp-4]
   L0037: call System.Console.WriteLine(Int32)
   L003c: nop
   L003d: nop
   L003e: mov esp, ebp
   L0040: pop ebp
   L0041: ret
источник

n

neFormal in Unity Floodилка
с массивом такая же фигня
типа, отдельно создают переменную аргумента
источник

G

Graf in Unity Floodилка
using System;
public class C {
   public static void Main() {
       int []tmp = {1,2,3};
       int count = 0;
       while(count < 3){
           tmp[count++] = 0;
           Console.WriteLine(count);
       }
   }
}
источник

G

Graf in Unity Floodилка
если изменишь на ++i   будет ошибка
источник

G

Graf in Unity Floodилка
вот надо же херней страдать)
источник

n

neFormal in Unity Floodилка
не, это понятно
просто асм не занимается этой проверкой
источник