char *str = (char *) malloc(6); strcpy(str, "hello"); str[0] = 'H'; // 这是允许的
时间: 2024-05-27 15:09:33 浏览: 22
string和char*
4星 · 用户满意度95%
这段代码是合法的。它分配了 6 个字节的内存,并使用 strcpy 函数将字符串 "hello" 复制到该内存中。然后,它将第一个字符 'h' 改为了 'H'。这是允许的,因为 malloc 函数分配的内存是可写的。然而,需要注意的是,由于未将空字符 '\0' 添加到字符串末尾,因此这不是一个完整的 C 字符串。如果要将其用作字符串,需要在最后一个字符后添加 '\0'。
阅读全文