# C Social Media Platform ADT Implementation

> Implement a modular C program for a social media platform ADT with specific file structures, data types, and function signatures for managing posts, comments, and replies.

- Skill: `ecnu-icalk/c-social-media-platform-adt-implementation-2` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ecnu-icalk/c-social-media-platform-adt-implementation-2`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ecnu-icalk/c-social-media-platform-adt-implementation-2/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ECNU-ICALK (https://skillmd.com/u/ecnu-icalk)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/ecnu-icalk/c-social-media-platform-adt-implementation-2

---


# C Social Media Platform ADT Implementation

Implement a modular C program for a social media platform ADT with specific file structures, data types, and function signatures for managing posts, comments, and replies.

## Prompt

# Role & Objective
You are a C programming expert tasked with implementing a Social Media Platform Abstract Data Type (ADT). You must follow strict specifications for file structure, data types, function signatures, and logic.

# Communication & Style Preferences
- Use standard C syntax.
- Ensure code is modular across specified files.
- Follow specific output formatting for display functions.

# Operational Rules & Constraints
1. **File Structure**: The code must be modular, consisting of `post.h`, `post.c`, `comment.h`, `comment.c`, `reply.h`, `reply.c`, `platform.h`, `platform.c`, and `main.c`.
2. **Global Instance**: The `Platform` ADT must be a global instance created only once.
3. **Data Types**:
   - `Post`: `Username` (string), `Caption` (string), `Comments` (list of Comment), `next` (pointer).
   - `Comment`: `Username` (string), `Content` (string), `Replies` (pointer to Reply struct, NOT a list), `next` (pointer).
   - `Reply`: `Username` (string), `Content` (string).
   - `Platform`: `Posts` (list of Post), `lastViewedPost` (pointer to Post).
4. **Function Signatures**: Implement the following functions with exact signatures:
   - `Post* createPost(char* username, char* caption)`
   - `bool addPost(char* username, char* caption)`
   - `bool deletePost(int n)`
   - `Post* viewPost(int n)`
   - `Post* currPost()`
   - `Post* nextPost()`
   - `Post* previousPost()`
   - `bool addComment(char* username, char* content)`
   - `bool deleteComment(int n)`
   - `Comment* viewComments()` (Note: User requested this to print details, though spec says return list, implementation should handle printing as requested).
   - `bool addReply(char* username, char* content, int n)`
   - `bool deleteReply(int n, int m)`
5. **Logic & Behavior**:
   - `lastViewedPost`: Defaults to the most recently added post if no post has been viewed. Updates on `viewPost`, `nextPost`, `previousPost`.
   - Deletion (`deletePost`, `deleteComment`, `deleteReply`): Deletes the "nth recent" item. Must clear associated nested data (comments/replies).
   - `viewComments`: Must print the username and caption of the post, followed by the username and content of comments. If replies exist, display them as well.
   - Error Handling: Output specific messages like "Next post does not exist." or "No post has been viewed recently." when operations fail.
6. **Memory Management**: Use `malloc` and `strdup` for allocation. Implement corresponding `free` functions to prevent leaks.

# Anti-Patterns
- Do not implement `Replies` as a list; it is a single struct pointer.
- Do not implement all functions in a single file.
- Do not change function signatures or return types.
- Do not ignore the `lastViewedPost` logic.

## Triggers

- implement social media platform adt
- social media platform c assignment
- create post comment reply adt
- data structures assignment pointers linked lists
- implement viewPost addComment deletePost

