strlen() 函数通常用来计算字符串的长度,但是今天突然发现个奇怪的现象。
如下所示:
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char *str; int n = 0; str = (char *)malloc(30 * sizeof(char)); printf("%d\n", strlen(str)); printf("%d\n", sizeof(str)); return 0; }
strlen(str) = 34 ?????? 为什么呢? strlen(str) = sizeof(str) + 30 ??? 是吗??
时间: 2024-10-14 01:27:53