gpt4 book ai didi

c - 这个 strtol 示例在处理未初始化指针方面是否正确?

转载 作者:行者123 更新时间:2023-12-01 05:15:12 25 4
gpt4 key购买 nike

我找到了一个关于在 here 上使用 strtol 的例子- 我将在此处复制该示例:

#include <stdio.h>
#include <stdlib.h>

int main () {
char str[30] = "2030300 This is test";
char *ptr;
long ret;

ret = strtol(str, &ptr, 10);
printf("The number(unsigned long integer) is %ld\n", ret);
printf("String part is |%s|", ptr);

return(0);
}

char *ptr 中未初始化指针的使用是否正确?如果是这样,为什么这不是错误使用未初始化指针的情况?

最佳答案

您实际上并没有使用未初始化的指针。您正在传递一个已知的局部变量的地址。

变量ptr的类型是char *,所以&ptr的类型是char **,这strtol 期望它的第二个参数。 strtol 函数然后将取消引用该指针,产生一个 char * 类型的左值表达式(即您可以分配给它的),以将地址分配给 ptr.

关于c - 这个 strtol 示例在处理未初始化指针方面是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46923544/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com