gpt4 book ai didi

c - 使用指针在 c 中打印当前工作目录

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:30:58 27 4
gpt4 key购买 nike

目标:在 Linux 机器上以 c 打印当前工作目录。

不使用指针,它给出正确的输出..

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<errno.h>
int main()
{
//char buf[1024];

char * buf;
char * cwd;
buf = (char *)malloc(sizeof(char) * 1024);

if((cwd = getcwd(buf, sizeof(buf))) != NULL)
printf("pwd : %s\n", cwd);
else
perror("getcwd() error : ");
return 0;
}

但是用指针显示如下错误

getcwd() error : : Numerical result out of range

最佳答案

这是因为当buf是一个指针时,sizeof(buf)是存储一个指针所需的字节数,而不是数组的大小,如您注释掉的代码中所示。

您需要传递分配的大小(即 1024),如下所示:

size_t allocSize = sizeof(char) * 1024;
buf = (char *)malloc(allocSize);
if((cwd = getcwd(buf, allocSize)) != NULL) ...

关于c - 使用指针在 c 中打印当前工作目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9697056/

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