gpt4 book ai didi

c - 当增加指针时,分配给指针的内存大小会发生变化

转载 作者:太空宇宙 更新时间:2023-11-04 01:01:13 25 4
gpt4 key购买 nike

<分区>

 char *ptr = (char*)malloc(10);

if(NULL == ptr)
{
printf("\n Malloc failed \n");
return -1;
}
else if(argc == 1)
{
printf("\n Usage \n");
}
else
{
memset(ptr, 0, 10);

strncpy(ptr, argv[1], 9);

while(*ptr != 'z')
{
ptr++;
}

if(*ptr == 'z')
{
printf("\n String contains 'z'\n");
/* Do some more processing */
}

free(ptr);
}

在前面的代码中,假设程序的参数是:Mixx,程序给出了一个段错误。

我的问题是:
当我在 while 循环中执行此操作时:

ptr++;

这是否意味着分配给指针 ptr 的内存大小也发生了变化,这就是为什么当我调用 free() 函数时它崩溃了。

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