C is one of the more interesting vibe coding domains because the failure modes are so unforgiving. With Python or TypeScript, AI-generated bugs often manifest as logical errors or runtime exceptions you can trace. With C, the bugs can be memory corruptions that don't surface until much later, and the hallucinated function signatures or incorrect memory management patterns can produce code that works most of the time and fails spectacularly in edge cases.
That said, there are genuine wins in using AI for C — boilerplate generation for data structures, writing test harnesses, scaffolding platform-specific code you'd otherwise have to look up. The key discipline is the same as always: you have to read and understand every line before it touches a production codebase.
The Agile Vibe Coding Manifesto (https://agilevibecoding.org) has a principle that's especially relevant for C: "Generated systems remain deterministic and verifiable — verified through tests." For C specifically, that means not just running the tests but running with sanitizers (ASAN, UBSan) and being very deliberate about what invariants you're relying on.
Is this for embedded, systems software, or something else? The risk profile varies a lot by domain.