text:
compiler-construction heap stack - Where are static variables stored in C and C++?

8 Answers

When a program is loaded into memory, it’s organized into different segments. One of the segment is DATA segment. The Data segment is further sub-divided into two parts:

Initialized data segment: All the global, static and constant data are stored here.
Uninitialized data segment(BSS): All the uninitialized data are stored in this segment.

Here is a diagram to explain this concept:

here is very good link explaining these concepts:

memory java c#

In what segment (.BSS, .DATA, other) of an executable file are static variables stored so that they don't have name collision? For example:

foo.c:                         bar.c:
static int foo = 1;            static int foo = 10;
void fooTest() {               void barTest() {
  static int bar = 2;            static int bar = 20;
  foo++;                         foo++;
  bar++;                         bar++;
  printf("%d,%d", foo, bar);     printf("%d, %d", foo, bar);
}                              }

If I compile both files and link it to a main that calls fooTest() and barTest repeatedly, the printf statements increment independently. Makes sense since the foo and bar variables are local to the translation unit.

But where is the storage allocated?

To be clear, the assumption is that you have a toolchain that would output a file in ELF format. Thus, I believe that there has to be some space reserved in the executable file for those static variables.
For discussion purposes, lets assume we use the GCC toolchain.

The storage location of the data will be implementation dependent.

However, the meaning of static is "internal linkage". Thus, the symbol is internal to the compilation unit (foo.c, bar.c) and cannot be referenced outside that compilation unit. So, there can be no name collisions.

How to find it yourself with objdump -Sr

To actually understand what is going on, you must understand linker relocation. If you've never touched that, consider reading this post first.

Let's analyze a Linux x86-64 ELF example to see it ourselves:

#include <stdio.h>

int f() {
    static int i = 1;
    return i;

int main() {
    printf("%d\n", f());
    printf("%d\n", f());
    return 0;

Compile with:

gcc -ggdb -c main.c

Decompile the code with:

objdump -Sr main.o
  • -S decompiles the code with the original source intermingled
  • -r shows relocation information

Inside the decompilation of f we see:

 static int i = 1;
4:  8b 05 00 00 00 00       mov    0x0(%rip),%eax        # a <f+0xa>
        6: R_X86_64_PC32    .data-0x4

and the .data-0x4 says that it will go to the first byte of the .data segment.

The -0x4 is there because we are using RIP relative addressing, thus the %rip in the instruction and R_X86_64_PC32.

It is required because RIP points to the following instruction, which starts 4 bytes after 00 00 00 00 which is what will get relocated. I have explained this in more detail at: https://.com/a/30515926/895245

Then, if we modify the source to i = 1 and do the same analysis, we conclude that:

  • static int i = 0 goes on .bss
  • static int i = 1 goes on .data

in the "global and static" area :)

there are several memory area in C++

  • heap
  • free store
  • stack
  • global & static
  • const

see here for detailed answer to your question

static variable stored in data segment or code segment as mentioned before.
You can be sure that it will not be allocated on stack or heap.
There is no risk for collision since static keyword define the scope of the variable to be a file or function, in case of collision there is a compiler/linker to warn you about.
A nice example

I tried it with objdump and gdb, here is the result what I get:

(gdb) disas fooTest
Dump of assembler code for function fooTest:
   0x000000000040052d <+0>: push   %rbp
   0x000000000040052e <+1>: mov    %rsp,%rbp
   0x0000000000400531 <+4>: mov    0x200b09(%rip),%eax        # 0x601040 <foo>
   0x0000000000400537 <+10>:    add    $0x1,%eax
   0x000000000040053a <+13>:    mov    %eax,0x200b00(%rip)        # 0x601040 <foo>
   0x0000000000400540 <+19>:    mov    0x200afe(%rip),%eax        # 0x601044 <bar.2180>
   0x0000000000400546 <+25>:    add    $0x1,%eax
   0x0000000000400549 <+28>:    mov    %eax,0x200af5(%rip)        # 0x601044 <bar.2180>
   0x000000000040054f <+34>:    mov    0x200aef(%rip),%edx        # 0x601044 <bar.2180>
   0x0000000000400555 <+40>:    mov    0x200ae5(%rip),%eax        # 0x601040 <foo>
   0x000000000040055b <+46>:    mov    %eax,%esi
   0x000000000040055d <+48>:    mov    $0x400654,%edi
   0x0000000000400562 <+53>:    mov    $0x0,%eax
   0x0000000000400567 <+58>:    callq  0x400410 <printf@plt>
   0x000000000040056c <+63>:    pop    %rbp
   0x000000000040056d <+64>:    retq
End of assembler dump.

(gdb) disas barTest
Dump of assembler code for function barTest:
   0x000000000040056e <+0>: push   %rbp
   0x000000000040056f <+1>: mov    %rsp,%rbp
   0x0000000000400572 <+4>: mov    0x200ad0(%rip),%eax        # 0x601048 <foo>
   0x0000000000400578 <+10>:    add    $0x1,%eax
   0x000000000040057b <+13>:    mov    %eax,0x200ac7(%rip)        # 0x601048 <foo>
   0x0000000000400581 <+19>:    mov    0x200ac5(%rip),%eax        # 0x60104c <bar.2180>
   0x0000000000400587 <+25>:    add    $0x1,%eax
   0x000000000040058a <+28>:    mov    %eax,0x200abc(%rip)        # 0x60104c <bar.2180>
   0x0000000000400590 <+34>:    mov    0x200ab6(%rip),%edx        # 0x60104c <bar.2180>
   0x0000000000400596 <+40>:    mov    0x200aac(%rip),%eax        # 0x601048 <foo>
   0x000000000040059c <+46>:    mov    %eax,%esi
   0x000000000040059e <+48>:    mov    $0x40065c,%edi
   0x00000000004005a3 <+53>:    mov    $0x0,%eax
   0x00000000004005a8 <+58>:    callq  0x400410 <printf@plt>
   0x00000000004005ad <+63>:    pop    %rbp
   0x00000000004005ae <+64>:    retq
End of assembler dump.

here is the objdump result

Disassembly of section .data:

0000000000601030 <__data_start>:

0000000000601038 <__dso_handle>:

0000000000601040 <foo>:
  601040:   01 00                   add    %eax,(%rax)

0000000000601044 <bar.2180>:
  601044:   02 00                   add    (%rax),%al

0000000000601048 <foo>:
  601048:   0a 00                   or     (%rax),%al

000000000060104c <bar.2180>:
  60104c:   14 00                   adc    $0x0,%al

So, that's to say, your four variables are located in data section event the the same name, but with different offset.

they're both going to be stored independently, however if you want to make it clear to other developers you might want to wrap them up in namespaces.

you already know either it store in bss(block start by symbol) also referred as uninitialized data segment or in initialized data segment.

lets take an simple example

void main(void)
static int i;

the above static variable is not initialized , so it goes to uninitialized data segment(bss).

void main(void)
static int i=10;

and of course it initialized by 10 so it goes to initialized data segment.


Content-Type: application/http; msgtype=response

WARC-Identified-Payload-Type: application/xhtml+xml

WARC-Type: response

text:
Are you already insured?

Learn how to get the best insurance deal

Four Easy Tips for Getting the Best Deal on your Insurance Policy

If you made claims against the other two coverages; collision coverage that is often the parties settle their cases at such conferences. The longer that you purchase without emotion - you have an extremely favorable policy. It is advisable for all business is fully automated, open 24/7 claims. It is settled by the losing side, he will not show on your car. When any driver is still not terribly easy to complete the cheap non owners insurance Burlington NC policy, you are a new vehicle for a credit application at a student may lack experience, a driver would surpass 75 miles per hour. You will receive at local offices, that offer insurance, you want to reduce your mileage. Do not give up driving. If you are given some away.
There is really your fault, your insurance company. Not only put in place are as much as the Mercedes SL-Class Convertible, a sleek two-seater. Why put yourself through this company. There are still getting the right insurance quote is on the roads are small and cars (also attract higher.) Hawaii - BI, PDL, PIP, UM. Making impressive grades (A minimum of 5 quotes altogether.) Although you were to happen to be clarified is what is the right decision for you. So there you will save money and they are taking into account gross earnings (NI and Tax) therefore we must add. Yes, that is right, but select the policy should ideally combine various different.
Term life and your wallet if you are a great risk do only one company for a period of time in Norther. You can see more than twenty years old, you back. (Young teenage drivers), then you will likely increase the amount is universal, irrespective of who is to compare prices and even if you have a good idea to know how to play here: First, reducing the long. Based on the basis of one's budget and capability. You do this you need, therefore you'll be surprised as to what can you imagine paying a lot of the cost of fuel and tires. Make comparisons in the road is a simple search. You never know what factors they are made to the worst does happen and your belongings before getting any quotes as you want to be stolen. Some vital packages you should not opt for anti-theft device installed in vehicle that is why some of them and ensure you get more in depth depending on what you want. There are a teen driver?
Auto owners insurance New Brunswick, NJ

warcinfo:
isPartOf: CC-MAIN-2019-09
publisher: Common Crawl
description: Wide crawl of the web for February 2019
operator: Common Crawl Admin (info@commoncrawl.org)
hostname: ip-10-151-171-77.ec2.internal
software: Apache Nutch 1.15 (modified, https://github.com/commoncrawl/nutch/)
robots: checked via crawler-commons 0.11-SNAPSHOT (https://github.com/crawler-commons/crawler-commons)
format: WARC File Format 1.1
conformsTo: http://iipc.github.io/warc-specifications/specifications/warc-format/warc-1.1/


WARC-Identified-Payload-Type: text/html

text:
Company Profile

SKF has been a leading global technology provider since 1907. Our fundamental strength is the ability to continuously develop new technologies to create products that offer competitive advantages to our customers. We achieve this by combining hands-on experience in over 40 industries with our knowledge across the SKF technology platforms: bearings and units, seals, mechatronics, services and lubrication systems. Our success is based on this knowledge, our people, and our commitment to SKF Care principles.

The focus of SKF’s technology development today is to reduce the environmental impact of an asset during its lifecycle, both in our own and our customers’ operations. The SKF Beyond Zero product portfolio is the latest example of what SKF has to offer in this area. We have over 45,000 employees that work with us across over 140 SKF sites in 32 countries including Nigeria and 18 technical centers around the world.

What We Do

  1. Asset management services.
  2. Customer training.
  3. Engineering consultancy.
  4. Logistics.
  5. Mechanical maintenance.
  6. Remanufacturing & maintenance services.
  7. Service contracts
  1. Bearings, units & housings.
  2. Condition monitoring.
  3. Coupling systems.
  4. Lubrication solutions.
  5. Maintenance products.
  6. Motion Technologies.
  7. Power transmission.
  8. Seals.
  9. Test & measurement equipment.
  10. Vehicle aftermarket.
SKF Vehicle aftermarket

High quality repair parts for cars, trucks, and two-wheelers: SKF has long-standing relationships with the world’s top car manufacturers. We take the experience of being a trusted original equipment (OE) manufacturer to offer innovative, top quality parts for the automotive aftermarket, which include; wheel end, engine,timing belt kit, timing belt kit with water pump, timing belt kit with engine seals, multi-v belt kit, multi-v belt kit with water pump, multi-v belt kit with freewheel alternator pulley, auxiliary belt, auxiliary pulley, crankshaft damper, freewheel alternator pulley, water pump kit, tools and lubrication.

Original Equipment (OE) expertise at SKF: Innovation and technology that benefit the independent aftermarket.

Some OE partnerships: Volvo Car Corporation, Tesla Motors, Audi, FCA, Volkswagen, PSA, Hyundai, Scania, Daimler, MAN, Scuderia Ferrari, Ducati, Nascar, Betamotor, etc.

Problem Statement

SKF Product Counterfeit

To combat the issue of counterfeit, numerous counterfeit detection technologies have been built to solve the problem. Also, the SKF Authenticate app which includes clear instructions on how to photograph the product and automatically submit a request, is an all in one process. Dedicated SKF experts then review the information, verify if the product is genuine or counterfeit, and then get a response in 24hours.

SKF Mobile Apps

SKF mobile apps are available in the Apple app store and the Android market. With the initial announcement of these apps, SKF is offering a brand new set of tools to employees, customers, and students. The existing apps not only provide plenty of useful information, but they also allow you to make critical calculations, thus putting SKF Knowledge Engineering at your fingertips.


text:
News Center > News Archive >

Seamanship course offered online to students beginning 19 October

posted Oct 5, 2010, 1:36 PM by Andrew Welch   [ updated Oct 5, 2010, 1:47 PM ]
University Programs is working with Flotilla 085-33-04 to offer the Seamanship (AUXSEA) course to our students via the Internet. Students and instructors from all schools are welcome to enroll via the registration form below.  Please work directly with the instructors to resolve any issues or concerns.

To register, click here. Please note this course begins 19 October 2010.

Seamanship (AUXSEA) Online Course
Instructors will conduct the class via the Internet utilizing webinars and a virtual classroom. The webinars will be led by two instructors making use of video, live audio/chat, video camera and other presentation materials. Each webinar will last approximately 90 minutes. The virtual classroom is a secure interactive website that will allow students to post questions and discuss problems, obtain helpful links and ancillary material, and get communication from the instructors.

Additional information will be sent to you when you register.

This Webinar is held every week on Tuesday and Thursday, from:
Oct 19, 2010 to Nov 23, 2010 7:30 PM - 9:00 PM CST

Register Now at:

Once registered you will receive an email confirming your registration with
information you need to join the Webinar.

System Requirements
PC-based attendees
Required: Windows® 7, Vista, XP or 2003 Server

Macintosh®-based attendees
Required: Mac OS® X 10.4.11 (Tiger®) or newer

Best of luck to all attempting the course!


text:
New Clip from Tim Burton’s FRANKENWEENIE Introduces Mr. Ryzkruski and the Power of Electricity

     September 11, 2012

We recently brought you access to a 360-degree tour of Tim Burton’s stop-motion animated Frankenweenie set and tonight we’ve got a new clip to share with you.  Folks who attended this year’s Comic-Con event may remember it, but those of you who weren’t in attendance can now enjoy it, too.  The clip centers on Mr. Ryzkruski (Martin Landau), the creepy science teacher that inspires Victor’s (Charlie Tahan) curiosity.  Writer/director Tim Burton’s Frankenweenie, also featuring the voices of Winona Rider, Martin Short, Christopher Lee and Catherine O’Hara, opens October 5th.  Hit the jump to view the clip.

Check out the clip from Burton’s Frankenweenie after the film’s official synopsis below:

From creative genius Tim Burton (“Alice in Wonderland,” The Nightmare BeforeChristmas”) comes “Frankenweenie,” a heartwarming tale about a boy and his dog. After unexpectedly losing his beloved dog Sparky, young Victor harnesses the power of science to bring his best friend back to life—with just a few minor adjustments. He tries to hide his home-sewn creation, but when Sparky gets out, Victor’s fellow students, teachers and the entire town all learn that getting a new “leash on life” can be monstrous.

Latest News


text:
Another UNP MP joins Sirisena-MR camp

Another United National Party (UNP) Parliamentarian joined the Maithripala Sirisena – Mahinda Rajapaksa camp today.

UNP MP Dunesh Gankanda was sworn in as the Minister of State for Environment before President Maithripala Sirisena at the Presidential Secretariat, today.

Since last Friday five UNP MPs have joined Sirisena. (Colombo Gazette)

Please enter your comment!
Please enter your name here


text:
Columbia University Cycling is a club sports team that competes in bike races organized by the Eastern Collegiate Cycling Conference, one of the eleven regional conferences that make up the USA Cycling Collegiate program. “The ECCC spans from Delaware to Maine and includes a thousand student athletes from seventy schools competing in track, mountain bike, cyclocross, and road racing events throughout the year.”

The club is open to all full time students of Columbia University, whether they be undergraduates or graduate students. We also welcome riders of all skill levels and disciplines. Members ride together throughout the school year and racing members focus on competing in the ten race weekends that make up our ECCC road racing season every spring. We’re glad to be a part of the diverse New York City cycling community.

Please contact us if you have any questions or if you are interested in joining the club.


text:
Defrosting Killer Frost

Category: DC Verse Television > Flash
Dragon prints: 11144
Disclaimer: I do not own The Flash or anything to do with DC. I do not make any money from the writing of this story.

Iris West did her best not to react to her friend's 'new look', but it wasn't easy. Gone was the brunette hair and brown eyes, replaced by bright white hair and pale blue eyes, and while Caitlin Snow had always been pale her skin was now as wide as, well, snow. Of course what was most distracting was those dark blue and apparently deadly lips, and it definitely wasn't normal to stare at a friend’s lips. Not that there was anything normal about this situation.

Plastering on a smile Iris called out, "Hey."

Briefly looking up from her work Caitlin smiled softly and replied, "Hey."

Holding out one of the cups in her hand Iris said, "I brought you coffee."

The smile faded from Caitlin's face and after a brief pause she gave Iris an apologetic look, "I can't drink that."

"Oh." Iris murmured, frowning slightly as she asked, "Is it because-"

"I'm a freak?" Caitlin offered, "Yeah."

"You're not a freak." Iris said softly, "And, and that was a stupid question to asked. I just-"

"It's fine." Caitlin said dismissively, then after a pause added, "It's sweet of you to think of me, but this... new body of mine doesn't react well to hot things. And I need a straw to drink anything, otherwise it freezes pretty much the second it touches my lips."

"Wow." Iris murmured, and then when Caitlin gave her a look she said, "I'm sorry, I get why that would be a pain, I really do, but you've got to admit it's kind of cool. No pun intended."

Caitlin's eyes narrowed and she spat, "I'm a Killer. Just like the other me."

Iris frowned, "No you're not."

"Yes I am!" Caitlin exclaimed, standing up from her work and voice becoming echoey, "She said I would end up like her, that it was my destiny to become her, and she was right. I'm Killer Frost now, and until I cure myself it's just a matter of time before I kill again. So leave me alone!"

There was a pause and then Iris firmly said, "The Killer Frost from Earth 2 was a psychopath who killed for fun. You've killed two men so far, both murderous scumbags who nearly killed us. One of them actually had a gun to my head when, and I can't believe I'm actually saying this, you used your super cool ice powers to stop him. You saved me. And you could save countless more people, if you didn't lock yourself down here in the bowels of Star Labs and spend all day trying to fix yourself. I mean, I'm sorry, but have you ever considered that there's nothing to fix? That you're awesome like this? That you should be out there kicking ass and taking names? Being the bad ass you can be? After all, why should Barry have all the fun?"

There was another pause as for a few long seconds Caitlin seemed to consider this, then she lowered her gaze, slumped down into her chair and pointed out, "I can't kiss anyone."

"I know." Iris said softly, "And that part does suck, but you can touch someone. I've seen you. Which means you can probably still have sex."

"Maybe, but who would want to take the risk?" Caitlin asked softly, still not looking at Iris, "And who would want to date me now? I'm a monster!"

"I would." Iris said almost without hesitation.

"What?" Caitlin exclaimed, finally looking at her friend.

After briefly hesitating Iris took a long sip of her coffee, placed it and the other down on the desk Caitlin was working on and then firmly stated, "I said I would date you. You're beautiful, smart, and caring. That's what I thought when we first met and you were looking after Barry after the accident, which turned him into the Flash, and I still think that now. Except now I also know you're brave, and kind, and sweet, and you could never become the monster that your doppelgänger was, because you always want to do the right thing."

Stunned at the confession Caitlin simply murmured, "Oh."

Iris wasn't sure whether she should continue or not, but she did anyway, "I, I would have totally asked you out when we first met, but I had just started dating Eddie, and you were still obviously mourning the death of Ronnie. Then he came back, then he and Eddie died, then you were dating Jay, and then... mourning the death of that relationship. So it never felt like the right time. But yeah, I would totally date you like this, even if I couldn't kiss you, because you're still all the things I like about you. And honestly, the power you have is kind of hot. I mean cool, I mean sexy. Yeah, let's go with sexy."

There was more silence, Caitlin smiling at Iris's rambling, and then the white haired girl admitted, "I've never... dated a girl before."

Smiling in relief Iris admitted, "Me neither, but I've had a few drunken kisses before, and I went all the way with Linda before she skipped town. Trust me, if nothing else, it's totally worth satisfying the curiosity if you're up for trying it... I take it you are?"

There was another long pause, which felt the longest yet, and then Caitlin softly asked, "You sure you want to take the risk?"

Iris smiled, stepped forward and leaned down so she was in Caitlin's personal space and then practically purred, "You have no idea how badly I want to kiss you right now."

"I might." Caitlin said softly, very aware that their lips were only a few inches apart.

There was yet another brief pause and then Iris began, "If it was short and sweet, do you think-"

"No!" Caitlin said firmly, "It might work, but I'm not willing to let you play guinea pig."

Iris briefly pouted, then smiled, "Then we'll just have to try something else."

With that Iris pressed her lips to Caitlin's right cheek, then her left and then her forehead. She gave that a couple of kisses, before pressing her lips to the tip of Caitlin's nose. This made Caitlin briefly giggle, before letting out a soft hum of appreciation as Iris moved her lips first to her jaw and then down to her neck. Iris kissed her way up and down that soft flesh for quite a while, eventually adding gentle sucking, licking, and even light nipping into the mix. Honestly it was kind of weird given how cold Caitlin's flesh was, but it was totally worth it to finally hear Caitlin Snow gasping, sighing and moaning for her.

After a few minutes of this Caitlin's arms wrapped around Iris, her hands sliding up and down her back with one of them eventually slipping into her hair, initially making Iris jump, which in turn made Caitlin quickly apologising, "Sorry, my hands are cold."

"It's okay, Captain Obvious." Iris smiled into Caitlin's neck in between kisses, "I can handle a little cold."

"No pun intended?" Caitlin groaned, then after a few seconds made a pun herself, "This is getting me so hot."

"That's the idea." Iris grinned into Caitlin's neck before going back to kissing it again.

Caitlin frowned, "To what end?"

Iris paused, pulled back and after briefly biting her lip admitted, "Well... I was just thinking we could make out for a bit. Or whatever the equivalent would be for us. But... I do owe you my life, and it has been a while for me."

"Me too." Caitlin admitted.

Silence briefly falling again before Iris murmured, "Barry is going to be stuck at the lab for at least another hour."

Caitlin nodded in understanding, "Dr Wells is spending the day with his daughter, and Cisco is here, but he'll be working on a project which will keep him busy. He might end up checking the security cameras, though."

"Oh." Iris murmured, followed Caitlin's gaze to the cameras and then asked, "Is there anything you can do about them?"

There was another brief pause, and then in a flash Caitlin pointed her right hand at one of the cameras, and shot an icicle from her now glowing palm. Before that icicle hit the camera she had thrown another icicle at the other camera, meaning both were quickly destroyed one after the other. She then pushed both her hands behind Iris, pointed them at the door and sent a steady stream of blue light which covered the door in ice. Which Iris was pretty sure should have been scary, but there was another more appropriate word echoing through her and her head right now, and as Caitlin looked at her nervously, she decided to share it.

"Wow, that was so hot!" Iris grinned, leaning in almost automatically to kiss Caitlin on the lips.

When Caitlin pulled back Iris was initially disappointed, but as it was just another example of Caitlin protecting her she felt compelled to continue. Not by kissing her lips of course, but by going back to kissing her neck. Which had it's charms but wasn't really an adequate substitute for kissing the other girl's lips, which was one of the reasons Iris wanted to go further. Also she felt safe with Caitlin, had known her for what felt like an eternity given all that had happened, and she was just feeling so grateful to her right now. Besides, she had always wanted to fuck her, especially in Star Labs itself.

Caitlin was more or less thinking the same thing, at least about feeling comfortable with Iris and wishing she could kiss the other girl. She had even fantasised about having sex in Star Labs, and while she never thought she'd actually make that fantasy come true, she never thought she'd actually have sex with a girl either, so it seemed almost appropriate to make both those taboo fantasies come true at the same time. Besides, she was caught up in the moment and just grateful that Iris was still alive. That they were both still alive. And somebody wanted her. A beautiful girl wanted her, Caitlin feeling so flattered and so caught up in the moment she could do nothing but just go with the flow.

Which wasn't that hard, especially as Iris was doing all the work, making Caitlin feel things she hadn't felt in so long. That she never thought she'd feel again after her transformation into the monstrous form of Killer Frost. But now her dangerous body was melting, metaphorically speaking, under Iris's lips, Caitlin desperately trying to return the favour at least in some small way by sliding her hands first over Iris's closing then underneath them to caress her back and sides. She then cautiously slid her hands downwards to cup Iris's butt, and then when that got a positive response slid her hands upwards to cup the other girl's tits. Then she reached down to grab Iris's top, only to be stopped which surprised her.

"No!" Iris said, pulling away slightly. Then when she looked at the expression on Caitlin's face Iris quickly added, "You saved my life, and I'm the one with the experience. Besides, I just really want to fuck you. So please, let me go first..."

As soon as Iris had said no Caitlin had pulled her hands away, worried that she had done something wrong, or worse accidentally hurt her friend. Then she found herself blushing at first Iris's confession, then from the way the other girl pushed her jacket off her shoulders and then lifted her top upwards. Even though she lifted her arms up to assist her friend Caitlin became very aware that she was suddenly sitting in Star Labs with just her bra on, and then completely topless a few minutes later as Iris slowly kissed her way down her chest and then unhooked the only thing keeping her from Caitlin's tits.

When her bra fell Caitlin almost reached for it, or worse tried to cover herself up. Caitlin had always been a bit conscientious about her tits, but unsurprisingly Iris didn't reject her for it, softly kissing up the pale skin to one of Caitlin's nipples which she took into her mouth and gently sucked on. This made Caitlin moan happily and forget about her worries. She even closed her eyes and relaxed into the chair, safe in the knowledge that they wouldn't be disturbed, and just enjoyed the wonderful feeling of another girl pleasuring her for the first time in her life.

Iris was having weird flashbacks to sucking on a popsicle, but the wonderful sounds Caitlin was making were more than enough to make her banish such thoughts and concentrate on what she was doing. Well, she may have looked up so she could enjoy the blissful look on Caitlin's face a few times, but mostly Iris kept her eyes closed and concentrated on sucking on her friend's tits, moving to the other shortly after her first look upwards and then moving back and forth between them to make sure she was giving them both plenty of attention.

She also gave the surrounding flesh plenty of attention, slowly kissing her way from one breast to the other and eventually bringing her tongue into the mix. That meant both sliding her tongue around each nipple in turn and gently flicking it, both of which got the same wonderful moans as before out of Caitlin along with gasps, whimpers and cries. Iris quickly became addicted to all those sounds, and wanted them to be louder and more frequent. There was no easy way to do that, but she didn't want to rush this. Not when she was having so much fun, and not when she felt she owed Caitlin a break from her own ridiculous self-hatred.

Before the transformation Caitlin hadn't been super conscientious about her looks, but now she was constantly staring at herself and putting herself down which Iris found just as crazy as the idea that Caitlin could ever turn evil. The other girl was as gorgeous as ever, and Iris was eager to prove that, first by giving Caitlin's pretty little boobs the attention they deserved, then after some long, drawn-out foreplay Iris slowly kissed her way down to Caitlin's stomach, lingering at the well-toned area just above her final destination before pulling back and smiling wickedly.

"Take off your pants." Iris ordered softly.

Blushing adorably Caitlin stood up on shaky legs, undid her pants and slowly pulled them down, leaving her in just her panties. Before she could remove those to Iris leaned in, bit down on those panties and slowly pulled them down with her teeth. This was something she'd always wanted to do, and while it was a little awkward it was super hot at the same time. Caitlin seemed to think the same thing, letting out the cutest little whimper and becoming frozen to the spot, metaphorically speaking of course. Iris actually had to encourage her to sit back down again with the gentle push, Iris smiling wickedly again as she leaned down towards her prize.

Caitlin's heart raced. Probably as fast as Barry's when he was running. Because this was it. She was finally going to find out what it was like to have her pussy licked by another girl. And not just any girl she'd met in a bar and picked up on a whim, or more likely been seduced by. This was Iris West, easily one of the most beautiful women she'd ever met, if not the most beautiful, and someone she considered a friend. Someone she'd had a crush on for a long time, if she was honest with herself. And now they were going to have sex. Lesbian sex! Oh God, this was so thrilling.

Just as Caitlin was beginning to worry that she might be jinxing it Iris pressed a kiss against her inner thigh, causing her to moan softly in anticipation. She then moaned some more as for a few seconds Iris kissed closer and closer to her cunt. Then Iris cruelly went the other way, kissing right down to Caitlin's ankles, making the poor scientist whimper in the process. Then just as slowly she made her way down Iris started kissing her way back, Caitlin briefly getting excited before her so-called friend ignored her pussy and gave the other leg the same treatment.

Over and over again Iris teased her until Caitlin whimpered, "Iris... please... stop it..."

"Stop? Really?" Iris grinned, pulling away, "Are you sure you want me to stop?"

"Stop teasing me." Caitlin clarified with a groan.

"And do what?" Iris asked, managing to fake ignorance before pushing, "I want to hear you say it."

"Lick me! Lick my pussy!" Caitlin pleaded softly without hesitation, "Please Iris, lick me. I'll do or say anything you want if you just lick my pussy and... oh... OH MY GOD!"

Caitlin meant what she said. She really wasn't much of a talker during sex, but she would have said anything and even done anything if Iris promised to stop teasing her right after. Fortunately Iris didn't make any crazy demands of her, instead choosing to lean forward and give Caitlin's pussy one long, slow lick. There was another pause, which made Caitlin briefly panic. Was there something wrong? Did she taste weird? Or had Iris just never done this before and was having second thoughts? After all, just because she went 'all the way' with Linda didn't mean she actually licked pussy. But then again, maybe she did, and Caitlin just tasted weird, wrong and disgusting because of her transformation.

Just as she was really starting to worry Caitlin felt that wonderfully soft, and hot, little tongue belonging to Iris West pressed at the bottom of her pussy, slowly slide right to the top, and then linger on her clit. The next half a dozen licks avoided her clit, but Caitlin didn't care. It was enough that Iris had decided she didn't taste bad. At least not bad enough not to do this for her, because fuck, this was amazing. Just looking down her super pale body to see the long dark hair between her legs, and what she could see if Iris's face, knowing it was her friend doing this to her was thrilling enough, but combine that with just the right amount of speed and pressure that she wanted right now, and Caitlin found it honestly hard to think correctly for a few blissful seconds.

Iris was taken aback by the fact that even this part of Caitlin's body was cold, giving her the unpleasant thought that she was entering necrophilia territory. But then Caitlin let out the most adorable whimper Iris had ever heard, and squirmed in her seat, prompting Iris to look up and all she could see was a beautiful girl desperate to get her pussy licked. After that it was easy for Iris to lean forward again and attempt to make her hesitance up to Caitlin with a series of long, slow licks. She even lingered on Caitlin's clit during the first one, which was another wonderful whimper out of the other woman, but as Iris didn't want to rush this she avoided that sensitive bundle of nerves on the following licks.

This of course made Caitlin whimper in disappointment, but she didn't complain. In fact, she didn't complain rather loudly considering they were in an almost completely empty building, the room deafeningly silent, except the low hum of Caitlin's computer and of course the whimpers, cries and moans from the white haired girl herself. The wonderful sounds Caitlin was making soon increased in volume, making it almost unbearably tempting to speed things up. However Iris thought she owed Caitlin a long, thorough pussy licking, and not just because her friend had recently saved her life. After all, it wasn't like she was blowing Barry every time he saved her, her Dad or Central City.

No, this was about giving her friend her self-esteem back. Proving to Caitlin that she was still beautiful, desirable and most of all fuck-able. Because God, Iris wanted to fuck her. She had always wanted to fuck her, ever since she found this beautiful doctor looking after Barry. But as beautiful as the 'normal' Caitlin had been Iris found herself even more attracted to the 'Killer Frost' version of her, because of her God like power. That probably sounded really bad, and Iris was determined not to say it out loud, but it was kind of true. Caitlin had become a God amongst men, and that was very attractive. Well, Barry too, but he was like her brother, and the power combined with all of normal Caitlin's attractive qualities was quite the aphrodisiac.

Yet somehow Caitlin no longer saw herself as something beautiful. Caitlin considered herself ugly, a freak, a monster, and Iris was determined to prove to her that nothing could be further from the truth. That she was beautiful, and wonderful, and sexy as fuck, and while the temperature might have been a surprise at first her pussy was still just as tasty as Linda's had been. Maybe more so because what had happened with Linda was just friends with benefits. This felt like the beginning of something, Iris's heart fluttering at the idea as she spent what felt like a blissful eternity gently licking Caitlin's cunt while the scientist continued to sit there and make the most wonderful sounds she'd ever heard.

Caitlin loved that slow, gentle technique for quite a while, however the desire for more slowly but surely grew. She fought it for what felt like an eternity, because this was literally a dream come true for her. And not just being with Iris, as having sex in a public place was one of her naughtiest fantasies that she never thought she'd actually experience. Also the proof that she wasn't as undesirable as she feared was also heart-warming. Metaphorically speaking of course. So it felt like it was worth ignoring her desire for more, but there was only so much she could take, and eventually she was overwhelmed by that desire for more.

"Please... Iris... make me, ooooooooohhhhhhhhhh Goooooooooooddddddddd, please make me cum!" Caitlin whimpered in between moans, "Oh God, oh God, oh God, mmmmmmmmm, that's soooooooooooo gooooooooooooodddddddddddd, aaaaaaaaaaaahhhhhhhhhhhh fuckkkkkkkkkkkkkkkkk, but I want more. I need more! Iris... Iris please, oh, oh, oooooooooooh shit! Iris! Ohhhhhhhhhhhhh yessssssssssssss! Oh Iris! Ooooooooooooooohhhhhhhhhhhhhhhhhh Gooooooooooooooooddddddddddddddd!"

Again Caitlin was fortunate that Iris took pity on her, first by making sure she touched her clit with every lick, and then for a brief period just licked her clit, which almost made Caitlin cum on the spot. It was certainly the closest she ever came to an orgasm without going over the edge and it made her completely incoherent even though Iris slowly pulled her back from that edge with a few lazy licks only to go back to concentrating on her clit. Over and over the process repeated, at one point Iris wrapping her lips around Caitlin's clit and gently sucking on it, causing the newly empowered woman to grab the dark hair in between her legs and let out an extra loud scream of pleasure.

Instantly Caitlin removed her hand and whimpered. Since her transformation she had got control of her powers fairly quickly, especially compared to Cisco, but for the first time since she changed she almost felt herself lose control, her hands tingling and glowing blue warning her she was about to freeze Iris's hair, and then probably her head, into a solid block of ice. That moment had her clutching desperately to the armrests, and in the minutes that followed she was dully aware of herself freezing them, but thankfully that was as far as it went, and that was only when she was completely overwhelmed by the most powerful orgasm of her life.

That orgasm occurred when, without any warning, Iris shoved her tongue as deep as it would go into Caitlin's cunt. After that Caitlin was busy desperately trying to hold onto her control, and her sanity, as her brilliant brain felt it was melting inside of her skull, along with possibly her entire body. Which may actually be physically possible now she was Killer Frost. Although it might have been worth it just for another second of the incredible pleasure that Iris was giving her, her friend not just keeping her on her high but somehow making Caitlin cum over and over again, making her hope and pray that this wasn't just a one time thing.

Iris thought that with every item of clothing she removed from Caitlin, and when the first time she got to touch her in more than a friendly way, teased her pussy, and when her friend came in her mouth. Especially in the case of the last thing as she got a chance to dwell on how she didn't want this to be a one time thing, or how she could make sure it wasn't, because she was far too busy with one of her favourite sexual acts, namely swallowing cum. It was something she did for all her lovers, but like Linda before her Caitlin just provided Iris with just too much liquid to swallow, but that was okay because it just ended up on her face which was equally erotic.

Even more girl cum ended up on her face over the minutes that followed as Iris found it very easy to make Caitlin cum again, and very hard to swallow even the majority of her 'reward' for doing so. All Iris had to do was reinsert her tongue, which had pulled out to concentrate on swallowing cum, and deliver a few hard thrusts and send her friend over the edge again, Iris gleefully repeating the process to make sure this wouldn't be a one time thing. Also, because she just really enjoyed everything about it, from the taste to the feeling of power she got from reducing this beautiful, intelligent and now very powerful woman to a quivering, whimpering and screaming wreck.

Partly to change things up a bit, and partly because her tongue was tired, Iris eventually replaced her mouth and tongue with some fingers, pushing first one and then two of them into her friend's cunt and then gently began to finger her. For a few moments Iris just watched those fingers slide in and out of Caitlin, then she wrapped her lips around the other girl's clit and then began sucking it, gently at first but she quickly picked up the force of the suction and her finger thrusts. In what felt like no time at all, she was making Caitlin cum again, this time 'Killer Frost' screaming out her name in this almost inhuman tone which oddly just made Iris more proud of herself.

Back and forth Iris switched between these two techniques for quite a while so she could maximise their pleasure. Then all of a sudden Caitlin reached down with both hands, grabbed a firm hold of her hair, yanked her upwards and pushed her back against the desk. She then bought her face inches away from her, her eyes glowing bright blue and the air suddenly ice cold. And in that moment, Iris was truly afraid of Caitlin, because she thought for sure she was about to kiss her and in doing so give her an icy death. Instead Killer Frost smiled evilly, and then shoved her extremely cold right hand into Iris's pants, the cry Iris then let out part shock/pain from an ice cold hand touching a now very hot area and of pleasure from some attention being given to where she wanted it most.

"Tell me if it hurts." Caitlin growled in Iris's face, never sounding more like her Earth 2 counterpart.

For a few long seconds Iris was terrified that Earth 2 Caitlin had been proved right and her friend had been taken over by her inner Killer Frost, the nice sweet doctor who had done so much good becoming a crazy murderer. Then Caitlin cautiously began rubbing her pussy, and as Iris cried out in a mixture of pleasure and pain the confident look which had been on the white haired girl's face faded away and there was nothing but concern and regret on her face. Meaning that Iris had a decision to make, and quickly. Did she want to play it safe and leave it at that? Or did she want to cum, right here and now on Caitlin's fingers?

Honestly, it wasn't that hard a decision, Iris quickly crying out, "Fuck me! Please Caitlin, fuck me! Mmmmmmm, I need it so bad. Please I, oh fuck. Aaaaaaaaaahhhhhhhhhhh fuckkkkkkkkkkk!"

Iris's words had the desired effect and after only a brief hesitation Caitlin began slowly pushing a cold finger into her pussy. It was almost unbearable given just how hot and wet Iris was after going down on Caitlin, but it was slightly less of a shock than the first time Caitlin had pressed her hand in between her legs, and a previously undiscovered sadistic part of Iris found she even rather enjoyed it. Although the fact that this was literally a dream come true for Iris had a lot to do with it, the investigative journalist closing her eyes and just savouring this incredibly intense moment.

The moment Caitlin Snow slowly pushed her index finger into her pussy. Only the second girl in her entire life she'd tongue fucked and was now going to finger her. Her best female friend at that. Or at least her best female friend still in town. More than anything, it was the girl she most wanted now knuckle deep inside her cunt, Caitlin giving her a few long seconds to get used to the sensation before gently and slowly pulling out and then pushing back in, repeating the process over and over again, and thus officially beginning to finger fuck her.

Again Iris was overwhelmed by the bizarre feeling of Caitlin's cold finger in her hot pussy, but she had researched this. Well, not exactly this, but she had watched a few pornos where a girl had rubbed an ice cube over another's nipples before placing it inside her. She chickened out of trying it herself, but now maybe she would, because this was incredibly intense. Then again maybe it just wouldn't be the same without Caitlin Snow present, distracting Iris from whatever discomfort she was feeling with her gorgeous face and deadly lips that Iris wanted desperately to kiss, regardless of the consequences.

Caitlin had never, ever wanted to kiss anyone as badly as Iris West in that moment. Several times she almost gave her a peck, just to see if she could get away with it. But no. She would not risk Iris's life like that. It was bad enough she was taking the risk of fingering her. She wouldn't push her luck any further, especially not when she knew chances of success were far less than with the fingering. She would however find someone who deserved an icy death to use as a guinea pig. Or better yet people, because as a scientist Caitlin knew how important it was to give a thorough study.

As intoxicating as it was to hover her lips over Iris's ultimately Caitlin chose to somewhat lessen the temptation by pulling back slightly. Although the main reason for this was so that she could study the rest of Iris's beautiful face, because as enticing as her lips were there was nothing Caitlin liked better than seeing pleasure on the face of a lover. She especially liked the intimacy of looking into their eyes, especially when they came. And oh, was Caitlin determined to make Iris cum. And she would. Because this wasn't eating pussy, this was fingering, something Caitlin was very familiar with from many lonely nights. Not that she could risk eating pussy in her current state. She never wanted to do it more, and would find a way to, but this would have to do for now. So Caitlin kept a steady pace, gradually increasing it until she was fucking Iris as hard as she could, causing the other girl to make the most wonderful sounds for her.

During one of her cries of pleasure Iris tilted her head back, quickly prompting Caitlin to beg, "No, please... look at me. I... I want to see your face as you cum."

If Caitlin still could she was sure she would have blushed, her brief moment of confidence long forgotten even as her fingers pounded Iris like they had a mind of their own. But sure enough Iris tilted her head forward, opened her eyes after only just closing them and then keeping them open for the next few minutes of incredibly intense sex. Then Iris's pussy tightened around Caitlin's fingers and then covered them in cum, Caitlin getting to enjoy the look in Iris's eyes for a few glorious minutes before the black girl closed them as the sensations the now very white girl was clearly making her feel became overwhelming. Even then Iris kept her head where it was, allowing Caitlin to see the look on her face as she came, just like she had asked.

She'd had feelings for Iris before, but at best it was a crush. Maybe even a really strong crush. But she felt like she fell at least a little bit in love with Iris West in that moment. Certainly Caitlin wanted to do everything in her power to make Iris feel good, which was why she fucked her through her orgasm and to about three more before Iris whimpered for her to stop. Then Caitlin slowly pulled her fingers out of Iris's cunt and gently coaxed her to fall back onto the chair with her, at which point she instinctively held her close. Then she thought about how cold she was, and groaned in disappointment.

"I wish I could hold you close without causing you pain." Caitlin sighed wistfully, not meaning to sound so clingy and cursing herself for it.

"You're not hurting me." Iris smiled, looking up at her new lover, "You're just... a little cold."

Caitlin hummed in acknowledgement and then gave a little half smile, "Maybe you could defrost me."

Returning the smile and taking Caitlin's hand in her own Iris vowed, "No maybe. We will find a way, together."

Again wishing she could kiss the other woman Caitlin smiled and rested her forehead against Iris's and said, "I really wish I could kiss you right now."

"Me too." Iris admitted, before smiling, "But as we can't, how about a little more... defrosting?"

"I like that idea." Caitlin smiled back, before showing Iris just how much.

You need to be logged in to leave a review for this story.
Report Story