void Func(char* str1) { char string[20]; if (sizeof(str1) < 10) { strcpu(string,strl); }}这段代码有什么问题
时间: 2024-05-24 18:15:19 浏览: 15
有几个问题:
1. 在函数定义中,char* str1 是一个指针,通过 sizeof(str1) 获取的是指针的大小,而不是字符串的长度,因此这个判断条件不准确。
2. 字符串 string 的大小被定义为 20,但是在函数中并没有对其进行初始化,这可能导致一些未知的行为。
3. 函数中调用的 strcpu 和 strl 不是标准库函数,可能是用户自定义的函数,因此无法确定这些函数的行为。
4. 函数缺少返回类型。
综上所述,这段代码需要进行修改和完善才能正常工作。
相关问题
Void func(char str[100]){ Sizeof(str) = ?
函数参数中的字符数组 `str` 的大小是固定为 100。然而,在函数内部使用 `sizeof` 运算符获取数组大小时,它返回的是整个数组的字节大小,而不是字符串的长度。因此,`sizeof(str)` 的结果将是 `100 * sizeof(char)`,其中 `sizeof(char)` 取决于编译器,通常为 1 字节。所以,`sizeof(str)` 的结果将是 100 字节。
void Func ( char str[100]) { sizeof( str ) = }
在函数内部,使用 sizeof(str) 会返回数组指针的大小,而不是数组的大小。因为在函数参数中,数组名被转换为指向数组首元素的指针,所以 sizeof(str) 就等同于 sizeof(char*),即指针的大小。如果要获取数组的大小,可以使用 strlen(str) 或者 sizeof(str)/sizeof(str[0])。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)