⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠ You can decompress Drawing data with the command palette: ‘Decompress current Excalidraw file’. For more info check in plugin settings under ‘Saving’

Excalidraw Data

Text Elements

include <stdio.h>

void print(char* C) { while (*C != ‘\0’){ printf(“%c”, *C); C++; }

printf("\n");

}

int main() { char c[20] = “Hello”;

print(c); 

return 0;

}

Program execution starts here

How the program executes in Computer Memory?

Stack

main()

Stack frame

call stack: top of the stack executes.

Global

Heap

include <stdio.h>

void print(char* C) { while (*C != ‘\0’){ printf(“%c”, *C); C++; }

printf("\n");

}

int main() { char c[20] = “Hello”;

print(c); 

return 0;

}

C[20] = “Hello”

Stack

main()

100

120

Stack

include <stdio.h>

void print(char* C) { while (*C != ‘\0’){ printf(“%c”, *C); C++; }

printf("\n");

}

int main() { char c[20] = “Hello”;

print(c); 

return 0;

}

C[20] = “Hello”

main()

100

120

print()

C

150

170

154

158

H

E

L

O

L

100

100

\0

Stack

include <stdio.h>

void print(char* C) { while (*C != ‘\0’){ printf(“%c”, *C); C++; }

printf("\n");

}

int main() { char c[20] = “Hello”;

print(c); 

return 0;

}

C[20] = “Hello”

main()

100

120

print()

C

150

170

154

158

H

E

L

O

L

\0

*C

Stack

include <stdio.h>

void print(char* C) { while (*C != ‘\0’){ printf(“%c”, *C); C++; }

printf("\n");

}

int main() { char c[20] = “Hello”;

print(c); 

return 0;

}

C[20] = “Hello”

main()

100

120

print()

C

150

170

154

158

H

E

L

O

L

\0

*C

OUTPUT: H

Stack

include <stdio.h>

void print(char* C) { while (*C != ‘\0’){ printf(“%c”, *C); C++; }

printf("\n");

}

int main() { char c[20] = “Hello”;

print(c); 

return 0;

}

C[20] = “Hello”

main()

100

120

print()

C

150

170

154

158

H

E

L

O

L

\0

*C

OUTPUT: H

Stack

include <stdio.h>

void print(char* C) { while (*C != ‘\0’){ printf(“%c”, *C); C++; }

printf("\n");

}

int main() { char c[20] = “Hello”;

print(c); 

return 0;

}

C[20] = “Hello”

main()

100

120

print()

C

150

170

154

158

H

E

L

O

L

\0

*C

OUTPUT: H

LOOPING FASTER…

Stack

include <stdio.h>

void print(char* C) { while (*C != ‘\0’){ printf(“%c”, *C); C++; }

printf("\n");

}

int main() { char c[20] = “Hello”;

print(c); 

return 0;

}

C[20] = “Hello”

main()

100

120

print()

C

150

170

154

158

H

E

L

O

L

\0

*C

OUTPUT: HE

Stack

include <stdio.h>

void print(char* C) { while (*C != ‘\0’){ printf(“%c”, *C); C++; }

printf("\n");

}

int main() { char c[20] = “Hello”;

print(c); 

return 0;

}

C[20] = “Hello”

main()

100

120

print()

C

150

170

154

158

H

E

L

O

L

\0

*C

OUTPUT: HEL

Stack

include <stdio.h>

void print(char* C) { while (*C != ‘\0’){ printf(“%c”, *C); C++; }

printf("\n");

}

int main() { char c[20] = “Hello”;

print(c); 

return 0;

}

C[20] = “Hello”

main()

100

120

print()

C

150

170

154

158

H

E

L

O

L

\0

*C

OUTPUT: HELL

Stack

include <stdio.h>

void print(char* C) { while (*C != ‘\0’){ printf(“%c”, *C); C++; }

printf("\n");

}

int main() { char c[20] = “Hello”;

print(c); 

return 0;

}

C[20] = “Hello”

main()

100

120

print()

C

150

170

154

158

H

E

L

O

L

\0

*C

OUTPUT: HELLO

Stack

include <stdio.h>

void print(char* C) { while (*C != ‘\0’){ printf(“%c”, *C); C++; }

printf("\n");

}

int main() { char c[20] = “Hello”;

print(c); 

return 0;

}

C[20] = “Hello”

main()

100

120

print()

C

150

170

154

158

H

E

L

O

L

\0

*C

OUTPUT: HELLO

‘\0’ == ‘\0’

Condition failed.

Stack

include <stdio.h>

void print(char* C) { while (*C != ‘\0’){ printf(“%c”, *C); C++; }

printf("\n");

}

int main() { char c[20] = “Hello”;

print(c); 

return 0;

}

C[20] = “Hello”

main()

100

120

print()

C

150

170

154

158

OUTPUT: HELLO

Stack

include <stdio.h>

void print(char* C) { while (*C != ‘\0’){ printf(“%c”, *C); C++; }

printf("\n");

}

int main() { char c[20] = “Hello”;

print(c); 

return 0;

}

C[20] = “Hello”

main()

100

120

OUTPUT: HELLO\n

Stack

include <stdio.h>

void print(char* C) { while (*C != ‘\0’){ printf(“%c”, *C); C++; }

printf("\n");

}

int main() { char c[20] = “Hello”;

print(c); 

return 0;

}

OUTPUT: HELLO\n

THE END.