首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >realloc不工作

realloc不工作
EN

Stack Overflow用户
提问于 2012-03-28 19:26:24
回答 4查看 2K关注 0票数 1

我正在尝试理解realloc是如何工作的。这是我的程序。它给出了一些奇怪的错误。有谁可以帮我?我只是试着为数组a做realloc。感谢任何帮助。

代码语言:javascript
复制
#include<stdio.h>

int main()
{
    char a[5]="abcd";
    char *p;
    p = realloc(a,10);
    strcpy(a,"abcdefghi");
    printf("%s", a);
    return 0;
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-03-28 19:28:19

您必须向realloc传递一个指针,该指针指向由malloc或它的某个朋友分配的内存。在您的代码中,您正在传递a,这是一个堆栈分配的变量。

请注意,您不能修改堆栈分配数据的大小,因此如果您的代码确实需要修改变量的大小,则必须在堆上分配该变量。

票数 5
EN

Stack Overflow用户

发布于 2012-03-28 19:28:35

你不能通过mallocrealloc你没有(最初)得到的内存,就这么简单。

票数 2
EN

Stack Overflow用户

发布于 2012-03-28 19:29:03

你不能重新分配没有通过malloccalloc (或类似的动态内存分配功能)分配的内存。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9906510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档