请告诉我为什么这个函数会把'\0'作为第二个参数,编译并崩溃?

char var[9];
/*some initialization of var */
strcat(var, '\0');

最佳答案

该函数将const char *作为第二个参数。你通过了一个int

char *strcat(char *restrict s1, const char *restrict s2);

你基本上是在欺骗strcat去引用\0作为指针-它去引用NULL

关于c - 为什么strcat导致崩溃?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9428827/

10-11 21:21