Zum Hauptinhalt springen
Echtzeit-Radar & Feeds
Alle RSS Feeds ➔
👥 Community & Social
Windows Tipps & SecurityGrafikkarte vor Überhitzung schützen: So geht’s(25.09.2026 um 08:00 Uhr)
••••••••••
Windows Tipps & SecurityGrafikkarte vor Überhitzung schützen: So geht’s(25.09.2026 um 08:00 Uhr)
••••••••••
Intelligence View
⚡ tsecurity.de Intelligence

[Memoria] Almacenamiento de Class y Struct

Durante una entrevista, el entrevistador mencionó que "se suele decir que struct es más rápido que class". Luego acuñó las preguntas: "¿Por qué? ¿Qué relación tiene con la memoria? ¿Dónde se almacena?" Esta pregunta me parece capciosa y ba…

0
↗ Quelle (dev.to)
Reagiere als Erste:r — dein Feedback zählt!

Durante una entrevista, el entrevistador mencionó que "se suele decir que struct es más rápido que class". Luego acuñó las preguntas: "¿Por qué? ¿Qué relación tiene con la memoria? ¿Dónde se almacena?"



Esta pregunta me parece capciosa y bastante difícil de responder en una entrevista oral, a través de una video llamada, donde no tengo materiales para ilustrar las ideas.



Más de un desarrollador de iOS dice que las estructuras viven en el stack y las clases en el heap.





Sin embargo, estrictamente hablando, Swift no puede garantizar dónde se almacenan los objetos (instancias de class) y los valores (instancias de struct).






¿class siempre vive en el heap?



Es cierto que la mayor parte de las veces se puede asumir que los objetos (instancias de class) viven el heap. Sin embargo, si el compilador logra determinar que el objeto es creado y destruido dentro del mismo "stack-frame", sin ninguna referencia hacia él, entonces podría ser almacenado en el stack.



Consideremos el siguiente ejemplo:




class Box {
var point: Point
}

struct Point {
let x: Int
let y: Int
}

func makeBox() -> Int {
let box = Box(point: Point(x: 1, y: 2))
return box.point.x
}






En el caso anterior, el compilador podría optimizar la creación de Box y no crear el objeto físicamente en el heap, sino mantenerlo en el "stack-frame" y retornar el valor x.






¿Dónde se almacena un valor de tipo struct?



En ocasiones, el valor de un struct es tan pequeño que puede vivir en un registro - Como es el caso de un Int o un Double.



Por otro lado, un valor de struct mayor a tres palabras de máquina -o sea 8x3=24 bytes en procesadores de 64 bits- se guarda en el heap. A este paquete de 3 palabras se lo denomina "Value Buffer" de un "Existential container".



Sin importar que el valor de un struct podría estar almacenado en un registro o en el heap, lo más importante a tener en cuenta es que los atributos dentro de un struct se almacenan de forma inline, donde sea que se necesite que estén.



Retomemos el ejemplo anterior de Point y Box:




struct Point {
let x: Int
let y: Int
}






Cuando necesite almacenar un Point, el compilador se asegura de que tenga suficiente espacio para almacenar tanto x como y, un atributo inmediatamente después del otro. Si Point está en el "stack", entonces tanto x como y van a estar allí. Si está en el "heap", lo mismo: x y y van a estar en el "heap".



¿Qué pasa cuando mantenemos una referencia de Point desde Box?




class Box {
var point: Point
}






Box puede estar almacenado en el "heap". Como Point se almacena "inline" donde sea que se necesite, entonces puede estar almacenado en el "heap".






Conclusión



En Swift no hay una relación directa entre struct y stack ni entre class y heap. struct y class definen semántica (valor vs referencia) pero la ubicación en memoria depende del análisis de escape y de las optimizaciones del compilador.






¿Cuál fue mi respuesta en la entrevista?



Tan pronto empecé a describir con detalle los cimientos para dar una respuesta elaborada, pude notar en el rostro del entrevistador que no le agradaba mi respuesta. Tuve miedo y decidí responder que, en términos generales, struct vive en el stack y class vive en el heap y a eso se debe su rapidez.









Bibliografía



1. Sofort-Triage & Abwehrmaßnahmen

SOC Incident Playbook: Vulnerability Remediation & Verification
Syntax validiert (0 Fehler)
title: Detect Exploitation - [Memoria] Almacenamiento de Class y Struct
id: 2c1c26fb-3210-4f58-8c6c-27babbf61c4c
status: experimental
description: Automatisch generierte SIEM-Erkennungsregel basierend auf CTI Intelligence
references:
  - https://tsecurity.de/
author: iShareStuff CTI Automated Detection Engine
date: 2026-09-25
logsource:
  category: network_connection
  product: any
detection:
  selection:
      CommandLine|contains:
        - 'exploit'
  condition: selection
falsepositives:
  - Legitime administrative Zugriffe oder Penetrationstests
level: high
tags:
  - attack.initial_access
Syntax validiert (0 Fehler)
rule CTI_Threat_Indicator {
    meta:
        author = "iShareStuff CTI Automated Detection Engine"
        date = "2026-09-25"
        description = "YARA Signature for "
    strings:
        $str = "[Memoria] Almacenamiento de Cl" ascii wide
    condition:
        any of them
}
Syntax validiert (0 Fehler)
index=security sourcetype IN ("cisco:asa", "pan:traffic", "zeek_conn", "suricata", "WinEventLog:Security")
("Memoria Almacenamiento de Class y Struct")
| stats count earliest(_time) as first_seen latest(_time) as last_seen by src_ip, dest_ip, dest_host, signature
| eval first_seen=strftime(first_seen, "%Y-%m-%d %H:%M:%S"), last_seen=strftime(last_seen, "%Y-%m-%d %H:%M:%S")
| sort - count
Syntax validiert (0 Fehler)
message: "*Memoria Almacenamiento de Class y Struct*"
Syntax validiert (0 Fehler)
CommonSecurityLog
| where Message has "Memoria Almacenamiento de Class y Struct"
| summarize EventCount = count(), FirstSeen = min(TimeGenerated), LastSeen = max(TimeGenerated) by SourceIP, DestinationIP, DestinationPort, Activity
| extend DetectionRule = "iShareStuff-CTI-Compiled"
| sort by EventCount desc

2. Cyber Threat Intelligence & Forensik

🎯
MITRE ATT&CK Matrix Navigator 14 Taktiken
Reconnaissance
-
Resource Development
-
Initial Access
Execution
Persistence
-
Privilege Escalation
Defense Evasion
Credential Access
-
Discovery
-
Lateral Movement
-
Collection
-
Command and Control
Exfiltration
-
Impact
tsecurity.de Cognitive Threat RAG
Fokus-Vektor:

Kognitive Analyse für identifizierte Bedrohung: Erhöhte Bedrohungslage im Bereich [Memoria] Almacenamiento de Class y Stru.... Basierend auf 368k Vektor-Korrelationen werden sofortige Isolationsmaßnahmen für betroffene Endpunkte empfohlen.

🛡️ Angriffsfläche & Exposure

Netzwerk/Remote-Zugriff ohne Vorauthentifizierung möglich.

⚡ Empfohlene Sofortmaßnahmen
  • 1. Perimeter-Inspektion: Relevante Portfreigaben und exponierte Endpunkte unverzüglich scannen.
  • 2. Patch-Applikation: Hersteller-Hotfix einspielen oder betroffene Daemons in isolierte DMZ-Segmente überführen.
  • 3. Telemetrie & EDR-Alerts: Prozessaufrufe und Child-Processes auf anomale Shell-Spawns überwachen.
🔗 Semantisch verwandte Zero-Days MariaDB 11.7 VEC
Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten [Memoria] Almacenamiento de Class y Struct

Thematisch verwandte Begriffe: Memoria, Almacenamiento, Class, Struct · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Zum Aktualisieren ziehen
ZERO-DAY CVE-2026-97735 | ITFlow before 26.08 allows SVG attachments in the ticket email parser (c…
Advisory →
tsecurity.de Icon
Offline-Lesen, Eilmeldungen & 0ms Ladezeit

Installiere tsecurity.de direkt auf deinen Home-Bildschirm für das ultimative Vollbild-Magazinerlebnis ohne Browser-Leisten.

Nächster Beitrag